[問題] 修改 framework-res.apk 的限制

看板AndroidDev作者 (Mr. Pan)時間12年前 (2013/03/22 15:09), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
大家好~ 我想請問一下,目前想移植 sony 的 small app 到已經刷過的平板上 參考了一下 XDA 的文章: SSmallAppX http://forum.xda-developers.com/showthread.php?t=2066827 因為不可能直接拿來用,所以是把自己平板裡相同的東西抓出來,慢慢分析去對照 把 zip 裡面的稍微分析了一下後,有底下幾個東西要調整: (都是透過 akptool 或者 smali 做 decompile , 搜尋關鍵字 sony ) android.policy.jar => checkAddPermission : switch 加入一個 permission 的 case 放置幾個新個檔案(sony small app 的核心) framework.jar => 新增 com.sony.... package => 透過 smali 反編譯修改後再編譯 放回 /system/framework/ ---- 以上都一個一個修改測試過,替換後可以開機 ---- 最後要動到 framework-res.apk , 透過 apktool decompile , 一樣是先尋找 sony 字樣,結果確實在 AndroidManifest.xml 找到我要的東西: <permission android:label="@string/permlab_smallapp" android:name="com.sony.smallapp.permission.SMALLAPP" android:protectionLevel="dangerous" android:description="@string/permdesc_smallapp" /> 和 <permission android:label="@string/permlab_externalTaskSwitcher" android:name="com.sonymobile.permission.EXTERNAL_TASK_SWITCHER" android:protectionLevel="signatureOrSystem" android:description="@string/permdesc_externalTaskSwitcher" /> 於是將原本平板中 framework-res.apk 反編譯,開啟 AndroidManifest.xml 在適當的地方加入這兩筆資料,並且在 pubic.xml 和 strings.xml 加入 permlab_externalTaskSwitcher permdesc_externalTaskSwitcher permlab_smallapp permdesc_smallapp 都完成後再透過 apktool 轉回 apk 接著因為印象中有提過 framework-res.apk 不能重新簽章 所以做了底下幾個測試,透過 recovery 把檔案放進 /system/framework 接著 Wipe Dalvik Cache 和 Cache: [Case 1] 因為只有修改 AndroidManifest.xml 和 resource 所以先指替換 resources.arsc 和 AndroidManifest.xml 保留 framework-res.apk 裡面的簽章 (META-INF/) 結果:一直演開機動畫給我看 [Case 2] 全部檔案替換掉,但還是保留簽章 結果:還是不停的撥放動畫給我看 接著同上述不過做了重新簽章,都可以開進系統, BUT 當 "程式優化" 結束後就又重新進入開機動畫給我看了 orz... 只要是重新簽章,一開始都可以先進入系統,但是沒重新簽章 連系統都進不去 想請問一下版上有沒有對修改 framework-res.apk 有經驗的板友可以幫忙 指處一下哪邊可能有問題呢 QQ 之前常常去改裡面的圖片,但修改 AndroidManifest.xml 還是第一次@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.39.75

03/22 23:29, , 1F
有沒有試過把回編譯過dist資料夾裡面的apk檔用winrar打開
03/22 23:29, 1F

03/22 23:31, , 2F
把resources.arsc拉到舊到apk裡~記得要調成僅儲存
03/22 23:31, 2F

03/22 23:32, , 3F
壓縮方式不能用一般~用一般容量會少很多~
03/22 23:32, 3F

03/23 14:35, , 4F
有試過(這就是所謂用原本的簽章) , 我放 arsc 都是選僅儲存
03/23 14:35, 4F
文章代碼(AID): #1HJ0Eugs (AndroidDev)