反编译008神器,修改手机型号与android版本号信息

一个可以修改手机信息的xposed插件

 

008神器依赖xposed可修改其他应用获取到的系统参数值,见下图

反编译008神器,修改手机型号与android版本号信息_第1张图片

但是我们直接从网上下载的008神器生成的手机型号和安卓版本号都是好几年前的。下面就来分析下怎么修改这些手机型号和安卓版本号数据。

首先当然是要反编译,这里推荐个反编译神器:Android Killer,支持一键反编译

反编译008神器,修改手机型号与android版本号信息_第2张图片反编译后的项目结构如下图:

反编译008神器,修改手机型号与android版本号信息_第3张图片

然后找到存放手机型号的文件:imeiStore,按现有格式将新的手机型号数据增加或者替换进去

反编译008神器,修改手机型号与android版本号信息_第4张图片

安卓版本号并不在imeiStore中,而是在代码中保存了一个map,然后每次都随机生成,查找到该文件

反编译008神器,修改手机型号与android版本号信息_第5张图片

点击图中红色箭头指向的按钮,即可将smali文件转化成java文件,查看java文件

反编译008神器,修改手机型号与android版本号信息_第6张图片

这里我们需要将apiLevelMap的key-value进行修改,改成自己想要的安卓版本信息。那么如何改呢?我们可以直接改java文件然后将修改后的java文件通过工具转换成smali文件再放回原目录中。但是因为我们这里修改map的key-value对代码结构几乎没有影响,所以我选择直接修改smali文件。不过,这里有一个需要注意的地方,就是方法getSdkLevel()

反编译008神器,修改手机型号与android版本号信息_第7张图片

这个随机获取sdkLevel的方式,当我们修改上面的版本号后需要进行相应的修改。原本的sdkLevel是从api6开始并且后面的key都是连续的,所以这个算法里直接用了String str = r.nextInt(i) + 6和apiLevelMap.get(str)。为了尽量简单,我只改为apilevel从17开始,并且后续key也都是连续的,所以这里我就只需要把+6改为+17.

修改好后将文件放回反编译后的原目录下。

接下来就是再打包。放到相同目录下,使用apktool将反编译后的项目文件夹重新打包成apk文件,打包命令:apktool b 008shenqi

反编译008神器,修改手机型号与android版本号信息_第8张图片

打包后的apk在你的项目包里的dist文件夹下,之后我们将这个apk进行签名,签名成功即可直接运行。

反编译008神器,修改手机型号与android版本号信息_第9张图片

android killer同样为我们提供了便捷的签名功能:

反编译008神器,修改手机型号与android版本号信息_第10张图片

 

你可能感兴趣的:(Android反编译)