作者cavitylapper (狼子野心)
看板AndroidDev
标题[问题]如何调用IWindowManager的onTransact?
时间Wed Mar 13 22:56:11 2013
我的APK已经有share user id = android.uid.system
并且也有sign platform key了
我想要用程式让keyGuardManager的isKeyguardLocked()
和isKeyGuardSecure()结果是true
不知道该怎麽做好 所以想直接去改记录这两个值的根源
从源码看起来
似乎这两个方法(isKeyGuard...)是从IWindowManager那边拿结果过来的
然後再看IWindowManager
除了提供查出刚刚那两个的值的方法以外
似乎是在onTrasact当中进行写入处理
不过在IWindowManager的aidl中 并没有公开onTransact方法
然後我模仿写入的程式片段
case TRANSACTION_isKeyguardLocked:
{
data.enforceInterface(DESCRIPTOR);
boolean _result = this.isKeyguardLocked();
reply.writeNoException();
reply.writeInt(((_result)?(1):(0)));
return true;
}
case TRANSACTION_isKeyguardSecure:
{
data.enforceInterface(DESCRIPTOR);
boolean _result = this.isKeyguardSecure();
reply.writeNoException();
reply.writeInt(((_result)?(1):(0)));
return true;
}
我将CASE内的处理写到我的程式中 但是是失败的
有没有大大研究过源代码 能指点一下该怎麽写呢?
另外我有试过reflection了...不过可能是我语法错所以也失败了...
另外附上该IWindowManager源码
http://0rz.tw/Ob1mO
--
"山姆走到佛罗多身边,
两人的双手
紧握在一起,
好不容易才找到继续走下去的
勇气。"
──摘录自魔戒二部曲 双城奇谋 第四章第九节 屍罗的巢穴
天音:这真的是给好孩子看的东西吗???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.248.58.25
※ 编辑: cavitylapper 来自: 111.248.58.25 (03/13 22:57)
※ 编辑: cavitylapper 来自: 111.248.58.25 (03/13 22:59)
1F:→ bukiya:实际的动作是写在 WindowManagerService.java 03/14 13:07
2F:→ bukiya:IWindowManager.java和IWindowManager.aidl只是aidl的 03/14 13:07
3F:→ bukiya:interface而已 03/14 13:08
4F:推 gpc:直接用反射即可 03/14 18:50