作者darkk6 (Mr. Pan)
看板AndroidDev
標題[問題] 修改 framework-res.apk 的限制
時間Fri Mar 22 15:09:42 2013
大家好~ 我想請問一下,目前想移植 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
→ madjack:有沒有試過把回編譯過dist資料夾裡面的apk檔用winrar打開 03/22 23:29
→ madjack: 把resources.arsc拉到舊到apk裡~記得要調成僅儲存 03/22 23:31
→ madjack:壓縮方式不能用一般~用一般容量會少很多~ 03/22 23:32
→ darkk6:有試過(這就是所謂用原本的簽章) , 我放 arsc 都是選僅儲存 03/23 14:35