美文网首页
开发者教你简单插桩适配MIUI8-ROM包@T.R Team

开发者教你简单插桩适配MIUI8-ROM包@T.R Team

作者: 小时光_XSG | 来源:发表于2017-04-03 14:18 被阅读0次

该文章属于转载,感谢原作者:曦顏XY

一、开发环境

推荐使用Ubuntu14.04及其以上系统

自用镜像:https://pan.baidu.com/s/1b17o0u

需要安装的依赖:curl、git、openjdk-7、android-tools-adb

sudo apt-get install openjdk-7-jdk git curl android-tools-adb

[color=rgb(0, 83, 122) !important]复制代码

(可能还需要安装其他依赖、视插桩时的报错信息而定)

当然miui适配工具还是支持macOS平台、mac用户也可以下载玩耍

二、同步代码

1.下载repo

魔趣的repo不需要挂ss下载,推荐使用!

mkdir -p ~/bin

curlhttp://download.mokeedev.com/git-repo-downloads/repo> ~/bin/repo

chmod a+x ~/bin/repo

echo "export PATH=~/bin

PATH" >> ~/.bashrc

echo "export PATH=~/bin/PATH" >> ~/.bashrc

[color=rgb(0, 83, 122) !important]复制代码

2.下载适配代码

miui开源地址在这里https://github.com/MiCode

下载miui代码命令:

mkdir patchrom

cd patchrom

repo init -u git://github.com/MiCode/patchrom.git -b marshmallow

[color=rgb(0, 83, 122) !important]复制代码

整个代码同步大概需要一小时左右,请喝杯茶等待

如果发现速度过慢,请自带梯子,传送门:http://www.jianshu.com/p/b085b4832fd0

三、选择合适的底包

由于miui开发的代码是针对android6.0也就是marshmallow、所以你的底包也应该是基于Android 6.0 的推荐开发者在有实际手机的情况下进行适配,一方面,在 Android 6.0 上,有一些必要的文件信息需要从手机上获取;另一方面,很多适配出现的问题,是需要在真机上调试才能解决的。

四、拉取底包vendor

首先新建机型目录

. build/envsetup.sh

mkdir xblade

cd xblade

[color=rgb(0, 83, 122) !important]复制代码

然后将手机重启到rec模式、

adb reboot recovery

[color=rgb(0, 83, 122) !important]复制代码

接下来运行如下命令来拉取vendor

../tools/releasetools/ota_target_from_phone -r

[color=rgb(0, 83, 122) !important]复制代码

“-r”的意思是在rec模式下拉包

五、拷贝makefile并进行配置

从angler文件夹拷贝makefile、参考它进行相关配置

六、反编译framework

在 makefile 准备完毕后,便可以开始构建新的机型工程。以下命令会自动反编译

make workspace

[color=rgb(0, 83, 122) !important]复制代码

七、首次插桩

在新机型工程生成完毕之后,执行以下命令会完成自动插桩:

make firstpatch

[color=rgb(0, 83, 122) !important]复制代码

此时工具将会自动进行插桩、

由于原厂rom和miui官方逻辑问题、会导致部分patch失败、从而产生冲突、产生的冲突在temp/rej下、

八、解决冲突

有些smali冲突容易解决,甚至可以瞬间解决。一些难以解决的冲突依赖于冲突位置处的上下文,很多时候都是由于 board 和 vendor 在 smali 寄存器变量的使用差异导致的,我们需要从上下文中判断出寄存器变量的语义。这考察开发者着耐心。

没有相关基础的同学、朕赐你一本秘籍:

https://pan.baidu.com/s/1dFHqyvZ

九、打包

运行如下命令即可在out目录下面生成fullota.zip刷机包

make fullota

[color=rgb(0, 83, 122) !important]复制代码

如果你需要重新编译rom、则需要运行

make clean

[color=rgb(0, 83, 122) !important]复制代码

clean完成了再次fullota即可

十、调试

对新手来讲,适配miui是个相对很难的过程,仅仅解决了冲突并不一定能直接开机。

那就需要运用好logcat来抓取错误log、进行相关的分析

adb logcat

[color=rgb(0, 83, 122) !important]复制代码

Github上面有很多优秀开发者的开源miui项目,可以参考他们的开源项目进行冲突的修改以及bug的修复

相关文章

网友评论

      本文标题:开发者教你简单插桩适配MIUI8-ROM包@T.R Team

      本文链接:https://www.haomeiwen.com/subject/rrxoottx.html