從SBF檔提取APK檔及APK合併ODEX的方法

起因:
因為目前使用的milerstone2已改刷CM7
但是覺得moto官方內建的任務管理器很好用,想抓出來另外安裝
(誤刪系統檔案的也可以用這個方式回復)

1.必須先從官方的SFB檔提取我們想要的APK檔
2.合併APK檔及ODEX檔


1.參考機鋒網的教學(簡體網站)
http://bbs.gfan.com/android-1724267-1-1.html
工具包:http://www.megaupload.com/?d=DKJEEGSH

先用MotoAndroidDepacker.exe解開SBF檔(不知道非MOTOT的能不能用)
yaffs2img瀏覽器我的電腦開不起來
不過可以用explore2fs-1.08beta9.exe來提取APK檔
(這兩個程式都放在工具包裡面了)

執行MotoAndroidDepacker.exe將下載下來的SBF文件解包成SMG文件
具體做法是點選Open From File,打開剛才下載好的SBF檔
成功打開後會提示File Opened,接著點擊Split to Folder按鈕即會對文件進行解壓
,解出來的文件會存放在與.sbf文件相同文件夾內

執行explore2fs(放到解出來的SBF資料夾內),依次點擊File→Open Image File,
再在文件類型裡選擇All files(或是直接手動輸入)
,然後選擇剛才生成的文件夾裡的CG39.smg打開
(不同的MOTO手機對應的smg文件不同,比如Defy跟Milestone2是CG39.smg
atrix 4G是CG57.smg,請自行嘗試)

點選左邊側邊欄裡的同名文件可以看到很多的資料夾,點選app資料夾
,所有的係統內建的程式就都在這裡了。
在要提取的程序上按右鍵並點擊Export file就可以將它保存在電腦上了。

這邊要注意一下,比如說我要找的任務管理器的檔案是PerformanceManager.apk
在這裡要順便提取PerformanceManager.odex

2.合併apk跟odex
參考文章:http://chroya.iteye.com/blog/688904

裡面提到的五個jar檔
core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar
都可以在CF39.smg的/system/framework 裡面找到
另外文章內提到的 smali-1.2.2.jar 和 baksmali-1.2.2.jar 要抓新版的才能用
http://code.google.com/p/smali/downloads/list
接下來把所有的檔案都放在同一個資料夾

在開始,執行,輸入cmd,然後進到放檔案的資料夾
輸入 java -jar baksmali-1.2.8.jar -x PerformanceManager.odex(檔名自行替換)
分離odex後會產生一個out的資料夾

接下來輸入 java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex
就會產生classes.dex 文件

再來把原本的PerformanceManager.apk打開(按右鍵>開啟>選擇winrar)
將產生的classes.dex拖放到winrar裡面即可

再來就是要做簽名的動作(不簽名無法安裝)
下載 apk簽名工具 http://www.megaupload.com/?d=GKRIOO2B

簽名完後丟到手機裡面就可以安裝了
2011-11-03 13:17 發佈
感謝大大的分享,先加個註記,假日再來研究。
不能直接用超級管理器截取apk檔案嗎?XD

tomap41017 wrote:
不能直接用超級管理器...(恕刪)


應該也可以吧

這個只是從SBF底包抽出APK來打包的方法

如果你有截取後不能安裝的APK檔可能要這樣處理了
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?