




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
android反編譯適配指南Java二組
-Barry序言android操作系統(tǒng)飛速發(fā)展,ROM市場(chǎng)也是頗具市場(chǎng)前景目前的ROM市場(chǎng)魚龍混雜,從簡(jiǎn)單的美化、精簡(jiǎn)到性能優(yōu)化和品牌推廣各式各樣,我們要選擇有競(jìng)爭(zhēng)力的一種ROM制作方式來(lái)切入市場(chǎng)。反編譯適配ROM。目錄1、準(zhǔn)備工作2、反編譯步驟3、注意事項(xiàng)4、經(jīng)驗(yàn)教訓(xùn)
一.準(zhǔn)備工作
1.1使用到的環(huán)境及工具Linux環(huán)境ubuntu12.04、12.10(服務(wù)器/桌面版)可在ubuntu官網(wǎng)下載、推薦英文官網(wǎng)openjdk/jdk安裝$sudoadd-apt-repository"deb/lucidpartner"$sudoapt-getupdate$sudoapt-getinstallsun-java6-jdk或在oracle官網(wǎng)下載1.1使用到的環(huán)境及工具需要的各種lib和環(huán)境安裝
$sudoapt-getinstallgitgnupgflexbisongperfbuild-essentialzipcurllibc6-devlibncurses5-dev:i386x11proto-core-devlibx11-dev:i386libreadline6-dev:i386libgl1-mesa-glx:i386libgl1-mesa-devg++-multilibmingw32tofrodospython-markdownlibxml2-utilsxsltproczlib1g-dev:i386$sudoln-s/usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so參考:/source/initializing.html1.2了解待刷機(jī)型
機(jī)型是否需要解鎖等特殊操作了解該機(jī)型的刷機(jī)步驟完整刷機(jī)一次。一些流行的刷機(jī)討論及技術(shù)網(wǎng)站機(jī)鋒、小米等論壇
1.2了解待刷機(jī)型
下載最新的官方包獲取其中的system.img和boot.img1、查看系統(tǒng)分區(qū)情況:adbshellcat/proc/emmc或adbshellmount 或者adbshellcat/proc/mtd進(jìn)入recovery模式,然后取出etc\recovery.fstab執(zhí)行ddif=/dev/block/mmcblk0p4of=/sdcard/boot.img導(dǎo)出boot.img執(zhí)行ddif=/dev/block/mmcblk0p12of=/sdcard/system.img導(dǎo)出system.img。*打開dd導(dǎo)出的boot.img的前面幾個(gè)字節(jié)如果不是ANDROID,而后面有ANDROID,就把前面的一些字節(jié)刪除。1.3其他
SecureCRT:一個(gè)windows系統(tǒng)下訪問(wèn)linux系統(tǒng)的軟件需要在linux環(huán)境下建立一個(gè)工作目錄,然后把build和tita-4.0.4文件夾以及build.sh、config.sh文件拷貝到該目錄下新建用戶useradd添加用戶passwd修改密碼由于ubuntu默認(rèn)新用戶的shell為sh如果使用不便可以通過(guò)usermod-s/bin/bash用戶名改變shell配置查看當(dāng)前的shell:echo$SHELL查看所有用戶shell:cat/ect/passwd
二.反編譯步驟2.1解析system.img和boot.img
在工作目錄下執(zhí)行sourcebuild/config.sh執(zhí)行systemimg2zip.shoneX./system.imgext4,處理system.img,需要root權(quán)限,完成后生成oneX_system_tmp目錄,該目錄下的apkcerts.txtfilesystem_config.txtoneX.zip
linkinfo.txt是后續(xù)生成ROM時(shí)需要的文件。執(zhí)行bootimg2info.shoneX./boot.imgandroid處理boot.img,完成后生成oneX_boot_tmp目錄,該目錄下的basecmdlinekernelpagesizeRAMDISK是后續(xù)生成ROM時(shí)需要的文件。2.2創(chuàng)建機(jī)型修改包文件夾執(zhí)行create_device_dir.shtita-4.0.4oneX-4.0.4(機(jī)型加版本號(hào),該命令生成的文件夾)oneX_system_tmp/oneX.zip(前一步獲得的zip包)"com.htc.resources.apk"(該機(jī)型依賴的資源包名稱,一般存在于system/framework目錄下)。運(yùn)行完后在工作目錄下生成oneX-4.0.4機(jī)型目錄重啟手機(jī)到recovery模式adbrebootrecovery獲取recovery.fstab(etc目錄下)adbpull/etc/recovery.fstabd:\如果pull不到就先給recovery.fstab復(fù)制到手機(jī)sdcard中adbshelladbcp/etc/recovery.fstab/sdcard2.3生成新ROM包把前步中獲得的apkcerts.txtfilesystem_config.txtlinkinfo.txt拷貝到oneX-4.0.4\target_files\META目錄下basecmdlinekernelpagesizeRAMDISK復(fù)制到oneX-4.0.4\target_files\BOOT目錄下recovery.fstab復(fù)制到oneX-4.0.4\target_files\RECOVERY\RAMDISK\etc目錄下./build.shoneX-4.0.4(機(jī)型目錄)1.2.0(版本號(hào))"preparepackage"out\oneX-4.0.4\release中取得帶md5值的zip包即為新生成的ROM包2.4特性代碼合入ROM及調(diào)試SourceInsight管理Java源碼、查找smali代碼使用BeyondCompare對(duì)比修改代碼已TITA省電模塊的反編譯合入為例:需要修改serivces.jar和framework.jar具體修改方法已由spooner在前段時(shí)間的smali技術(shù)中介紹,只需用新的jar包將ROM中的替換即可logcat觀察日志日志一般關(guān)鍵信息:VFY關(guān)鍵字dex校驗(yàn)出錯(cuò)信息,一般適配前期很多問(wèn)題的根源都在這里,提示信息一般也比較明顯,比如方法未找到。Mismatch一半是簽名的錯(cuò)誤。
三.注意事項(xiàng)3.注意事項(xiàng)
應(yīng)保持手機(jī)電量足夠,因?yàn)橛械氖謾C(jī)是不支持關(guān)機(jī)充電的(大多數(shù)支持),所以如果適配后無(wú)法開機(jī),請(qǐng)及時(shí)關(guān)閉手機(jī),以免手機(jī)沒電。有些命令無(wú)法執(zhí)行,請(qǐng)首先確定這個(gè)文件在build目錄下是否存在,如果存在請(qǐng)確定是否在工作目錄下執(zhí)行sourcebuild/config.sh,如果都o(jì)k,請(qǐng)確定是否有執(zhí)行權(quán)限。3.注意事項(xiàng)
如果刷的ROM包無(wú)法啟動(dòng)到顯示界面的程度,這時(shí)候adbd默認(rèn)開啟就很有必要,使adbd默認(rèn)啟動(dòng)的方法:修改ramdisk中p文件:persist.sys.usb.config=mtp,adbpersist.service.adb.enable=1ro.secure=0這樣生成的內(nèi)核就是默認(rèn)運(yùn)行adbd的;
四.經(jīng)驗(yàn)教訓(xùn)
4.1Boot.img
1.手動(dòng)解包BOOT.imgunpackbootimg-iboot.img(被解的boot)-oboot/(需要boot目錄存在、解開后生成到boot目錄)2.手動(dòng)解包boot.img-ramdisk.gz將boot.img-ramdisk.gz復(fù)制一份到任何其他目錄下,將其改名為ramdisk.img.gz,使用命令:gzip-dcboot.img-ramdisk.gz|cpio–i或者命令:gunzipramdisk.img.gzmkdirramdiskcdramdiskcpio-i-F../ramdisk.img4.1Boot.img
3.手動(dòng)打包boot.img-ramdisk.gz修改后的ramdisk,使用命令:find*|cpio-o-Hnewc-O../boot.img-ramdiskcd..gzipboot.img-ramdisk最后打包成boot.img-ramdisk.gz4.手動(dòng)打包BOOT.img進(jìn)入到第一步的boot目錄下,執(zhí)行打包可以重新打包成boot.img:./mkbootimg.sh./boot.img--base0x10000000(第一步中生成的文件boot.img-base中的內(nèi)容)size2048(boot.img-pagesiz中的內(nèi)容)--cmdline""(boot.img-cmdline中的內(nèi)容)?;蛘適kbootimg--kernelboot.img-zImage--ramdiskboot.img-ramdisk.gz--base0x10000000size2048-oboot.img4.2一些機(jī)型問(wèn)題
HTC手機(jī):1.雙解鎖(官解、軟解,注意HBOOT版本號(hào),高的要降級(jí)解)2.HBOOT挽救手機(jī),PM86IMG.zip包可以被自動(dòng)識(shí)別3.注意setting.apk經(jīng)常沒有簽名(需改動(dòng)apkcerts.txt中的簽名設(shè)置)4.HTC經(jīng)常對(duì)源碼進(jìn)行較大幅度修改,smali代碼變動(dòng)也較大需要仔細(xì)調(diào)查上下文4.2一些機(jī)型問(wèn)題
SONY手機(jī)1.解鎖2.藍(lán)燈fastboot挽救手機(jī)三星手機(jī)1.odinmode挽救手機(jī)2.odin3工具線刷ROM包4.3簽名相關(guān)問(wèn)題
簽名的重要性系統(tǒng)無(wú)法啟動(dòng)系統(tǒng)無(wú)故重啟內(nèi)置應(yīng)用無(wú)法啟動(dòng)外部應(yīng)用無(wú)法安裝簽名的種類testkey:普通APK,默認(rèn)情況下使用platform:該APK完成一些系統(tǒng)的核心功能。經(jīng)過(guò)對(duì)系統(tǒng)中存在的文件夾的訪問(wèn)測(cè)試,這種方式編譯出來(lái)的APK所在進(jìn)程的UID為systemshared:該APK需要和home/contacts進(jìn)程共享數(shù)據(jù)media:該APK是media/download系統(tǒng)中的一環(huán)4.3簽名相關(guān)問(wèn)題
簽名的簡(jiǎn)單識(shí)別Manifest中的android:sharedUserId屬性android:sharedUserId的幾個(gè)值:android.uid.system/shared/media手動(dòng)簽名java-jar./signapkplatform.x509.pemplatform.pk8input.apkoutput.apk(platform.x509.pemplatform.pk8在build/target/product/security獲取)ROM打包前的簽名配置apkcerts.txt4.4預(yù)置第三方軟件
updater-script安卓手機(jī)刷入系統(tǒng)時(shí)的腳本文件語(yǔ)法:ui_print、mount、unmount、format、delete、package_extract_dir等預(yù)置軟件腳本ui_print("Mountingdata...");mount("ext4","EMMC","/dev/block/mmcblk0p23","/data");ui_print("Installingdatafiles.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 25246-2025畜禽糞肥還田技術(shù)規(guī)范
- 2025年常德c1貨運(yùn)從業(yè)資格證考試內(nèi)容
- 兒童桌子采購(gòu)合同范本
- 鄉(xiāng)鎮(zhèn)飯店轉(zhuǎn)讓合同范本
- 公司房租轉(zhuǎn)租合同范本
- 倉(cāng)庫(kù)裝修合同范本版
- 上海廠房出售合同范本
- 茶器定制合同范本
- 中標(biāo)咨詢合同范本
- 農(nóng)村訂購(gòu)混泥土合同范本
- 14 文言文二則 學(xué)弈 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文六年級(jí)下冊(cè)統(tǒng)編版
- Unit 4 Eat Well(大單元教學(xué)設(shè)計(jì))2024-2025學(xué)年七年級(jí)英語(yǔ)下冊(cè)同步備課系列(人教版2024)
- 2024-2030年中國(guó)游戲直播行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 統(tǒng)編版小學(xué)語(yǔ)文六年級(jí)下冊(cè)第四單元《理想和信念》作業(yè)設(shè)計(jì)
- 2025年度劇本殺劇本版權(quán)授權(quán)與收益分成合同
- 2025年一種板式過(guò)濾膜裝置項(xiàng)目投資可行性研究分析報(bào)告
- BMS基礎(chǔ)知識(shí)培訓(xùn)
- 水刀除銹施工方案
- 英語(yǔ)-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 2024年06月日照銀行社會(huì)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 烤房租賃合同范例
評(píng)論
0/150
提交評(píng)論