看板 AndroidDev 關於我們 聯絡資訊
我的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)
bukiya:實際的動作是寫在 WindowManagerService.java 03/14 13:07
bukiya:IWindowManager.java和IWindowManager.aidl只是aidl的 03/14 13:07
bukiya:interface而已 03/14 13:08
gpc:直接用反射即可 03/14 18:50