1.移植环境准备
①安装ubuntu14.04系统;
②安装 jdk
apt-get install jdk-1.7
③安装SDK
http://www.cr173.com/soft/78226.html
下载包adt-bundle-linux-x86.zip
然后解压将其中的sdk目录拷到/user/local下
配置环境变量
vim /etc/profile
添加export PATH=/usr/local/android-sdk-linux_x86/tools:/usr/local/android-sdk-linux_x86/platform-tools:$PATH
④repo下载
curl http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo > ~/bin //获取repo
chmod a+x repo //修改权限
PATH= ~/bin:$PATH //配置环境变量
⑤获取源码
mkdir patchrom
cd patchrom
repo init -u https://github.com/MiCode/patchrom_p1 -b kitkat
repo sync
2.手机环境准备
①手机root
②找到适合手机原厂rom
③刷入第三方recovery
3.miui移植
①提取手机rom
进入手机recovery模式
在patchrom目录下执行
. build/envsetup.sh
mkdir <phone_name>
cd <phone_name>
../tools/releasetools/ota_target_from_phone -r
提取完成后将<phone_name>目录下的stockrom.zip刷入手机进行验证,保证能正常运行。
②然后执行
make workspace
make firstpatch
③手动代码插桩
temp目录中
dst_smali_orig目录为android.policy.jar framework.jar framework2.jar services.jar telephone-common.jar 反编译后去除行号的目录
dst_smali_patched为打过patch的目录也是需要手动修改未patch成功的目录
new_smali是miui目录
old_smali是android原生目录
reject是未打上patch的文件记录
将reject内标记的文件修改完后进行回编验证
用dst_smali_patched中的文件目录去覆盖<phone_name>目录下的对应目录
④最后执行make fullota在out目录下生成fullota.zip,刷入验证是否能正常运行。
⑤问题解决,抓取log进行修改相关文件,解决问题
adb logcat > a.log
查看a.log,修改相关文件