android反编译适配指南_第1页
android反编译适配指南_第2页
android反编译适配指南_第3页
android反编译适配指南_第4页
android反编译适配指南_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

android反编译适配指南Java二组

-Barry序言android操作系统飞速发展,ROM市场也是颇具市场前景目前的ROM市场鱼龙混杂,从简单的美化、精简到性能优化和品牌推广各式各样,我们要选择有竞争力的一种ROM制作方式来切入市场。反编译适配ROM。目录1、准备工作2、反编译步骤3、注意事项4、经验教训

一.准备工作

1.1使用到的环境及工具Linux环境ubuntu12.04、12.10(服务器/桌面版)可在ubuntu官网下载、推荐英文官网openjdk/jdk安装$sudoadd-apt-repository"deb/lucidpartner"$sudoapt-getupdate$sudoapt-getinstallsun-java6-jdk或在oracle官网下载1.1使用到的环境及工具需要的各种lib和环境安装

$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了解待刷机型

机型是否需要解锁等特殊操作了解该机型的刷机步骤完整刷机一次。一些流行的刷机讨论及技术网站机锋、小米等论坛

1.2了解待刷机型

下载最新的官方包获取其中的system.img和boot.img1、查看系统分区情况:adbshellcat/proc/emmc或adbshellmount 或者adbshellcat/proc/mtd进入recovery模式,然后取出etc\recovery.fstab执行ddif=/dev/block/mmcblk0p4of=/sdcard/boot.img导出boot.img执行ddif=/dev/block/mmcblk0p12of=/sdcard/system.img导出system.img。*打开dd导出的boot.img的前面几个字节如果不是ANDROID,而后面有ANDROID,就把前面的一些字节删除。1.3其他

SecureCRT:一个windows系统下访问linux系统的软件需要在linux环境下建立一个工作目录,然后把build和tita-4.0.4文件夹以及build.sh、config.sh文件拷贝到该目录下新建用户useradd添加用户passwd修改密码由于ubuntu默认新用户的shell为sh如果使用不便可以通过usermod-s/bin/bash用户名改变shell配置查看当前的shell:echo$SHELL查看所有用户shell:cat/ect/passwd

二.反编译步骤2.1解析system.img和boot.img

在工作目录下执行sourcebuild/config.sh执行systemimg2zip.shoneX./system.imgext4,处理system.img,需要root权限,完成后生成oneX_system_tmp目录,该目录下的apkcerts.txtfilesystem_config.txtoneX.zip

linkinfo.txt是后续生成ROM时需要的文件。执行bootimg2info.shoneX./boot.imgandroid处理boot.img,完成后生成oneX_boot_tmp目录,该目录下的basecmdlinekernelpagesizeRAMDISK是后续生成ROM时需要的文件。2.2创建机型修改包文件夹执行create_device_dir.shtita-4.0.4oneX-4.0.4(机型加版本号,该命令生成的文件夹)oneX_system_tmp/oneX.zip(前一步获得的zip包)"com.htc.resources.apk"(该机型依赖的资源包名称,一般存在于system/framework目录下)。运行完后在工作目录下生成oneX-4.0.4机型目录重启手机到recovery模式adbrebootrecovery获取recovery.fstab(etc目录下)adbpull/etc/recovery.fstabd:\如果pull不到就先给recovery.fstab复制到手机sdcard中adbshelladbcp/etc/recovery.fstab/sdcard2.3生成新ROM包把前步中获得的apkcerts.txtfilesystem_config.txtlinkinfo.txt拷贝到oneX-4.0.4\target_files\META目录下basecmdlinekernelpagesizeRAMDISK复制到oneX-4.0.4\target_files\BOOT目录下recovery.fstab复制到oneX-4.0.4\target_files\RECOVERY\RAMDISK\etc目录下./build.shoneX-4.0.4(机型目录)1.2.0(版本号)"preparepackage"out\oneX-4.0.4\release中取得带md5值的zip包即为新生成的ROM包2.4特性代码合入ROM及调试SourceInsight管理Java源码、查找smali代码使用BeyondCompare对比修改代码已TITA省电模块的反编译合入为例:需要修改serivces.jar和framework.jar具体修改方法已由spooner在前段时间的smali技术中介绍,只需用新的jar包将ROM中的替换即可logcat观察日志日志一般关键信息:VFY关键字dex校验出错信息,一般适配前期很多问题的根源都在这里,提示信息一般也比较明显,比如方法未找到。Mismatch一半是签名的错误。

三.注意事项3.注意事项

应保持手机电量足够,因为有的手机是不支持关机充电的(大多数支持),所以如果适配后无法开机,请及时关闭手机,以免手机没电。有些命令无法执行,请首先确定这个文件在build目录下是否存在,如果存在请确定是否在工作目录下执行sourcebuild/config.sh,如果都ok,请确定是否有执行权限。3.注意事项

如果刷的ROM包无法启动到显示界面的程度,这时候adbd默认开启就很有必要,使adbd默认启动的方法:修改ramdisk中p文件:persist.sys.usb.config=mtp,adbpersist.service.adb.enable=1ro.secure=0这样生成的内核就是默认运行adbd的;

四.经验教训

4.1Boot.img

1.手动解包BOOT.imgunpackbootimg-iboot.img(被解的boot)-oboot/(需要boot目录存在、解开后生成到boot目录)2.手动解包boot.img-ramdisk.gz将boot.img-ramdisk.gz复制一份到任何其他目录下,将其改名为ramdisk.img.gz,使用命令:gzip-dcboot.img-ramdisk.gz|cpio–i或者命令:gunzipramdisk.img.gzmkdirramdiskcdramdiskcpio-i-F../ramdisk.img4.1Boot.img

3.手动打包boot.img-ramdisk.gz修改后的ramdisk,使用命令:find*|cpio-o-Hnewc-O../boot.img-ramdiskcd..gzipboot.img-ramdisk最后打包成boot.img-ramdisk.gz4.手动打包BOOT.img进入到第一步的boot目录下,执行打包可以重新打包成boot.img:./mkbootimg.sh./boot.img--base0x10000000(第一步中生成的文件boot.img-base中的内容)size2048(boot.img-pagesiz中的内容)--cmdline""(boot.img-cmdline中的内容)。或者mkbootimg--kernelboot.img-zImage--ramdiskboot.img-ramdisk.gz--base0x10000000size2048-oboot.img4.2一些机型问题

HTC手机:1.双解锁(官解、软解,注意HBOOT版本号,高的要降级解)2.HBOOT挽救手机,PM86IMG.zip包可以被自动识别3.注意setting.apk经常没有签名(需改动apkcerts.txt中的签名设置)4.HTC经常对源码进行较大幅度修改,smali代码变动也较大需要仔细调查上下文4.2一些机型问题

SONY手机1.解锁2.蓝灯fastboot挽救手机三星手机1.odinmode挽救手机2.odin3工具线刷ROM包4.3签名相关问题

签名的重要性系统无法启动系统无故重启内置应用无法启动外部应用无法安装签名的种类testkey:普通APK,默认情况下使用platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为systemshared:该APK需要和home/contacts进程共享数据media:该APK是media/download系统中的一环4.3签名相关问题

签名的简单识别Manifest中的android:sharedUserId属性android:sharedUserId的几个值:android.uid.system/shared/media手动签名java-jar./signapkplatform.x509.pemplatform.pk8input.apkoutput.apk(platform.x509.pemplatform.pk8在build/target/product/security获取)ROM打包前的签名配置apkcerts.txt4.4预置第三方软件

updater-script安卓手机刷入系统时的脚本文件语法:ui_print、mount、unmount、format、delete、package_extract_dir等预置软件脚本ui_print("Mountingdata...");mount("ext4","EMMC","/dev/block/mmcblk0p23","/data");ui_print("Installingdatafiles.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论