引言:
其实关于该机型优化已经不是什么新鲜事了,不过前几天在知乎上看到过话题:如何看待 360 手机为「优化」腾讯游戏体验,在游戏模式中把自己的型号改成了 vivo?然后呢,你应该会好奇为什么360要这么做,看到答题区的这几个图你应该就懂了:
这个中什么PY交易我不关心,我只知道把系统改成Oppo或者Vivo机型的,就可以有多核优化和高帧率模式。然后呢,如果你手机Root了的话,直接打开system/build.prop,修改系统相关的信息,品牌,机型,系统版本等:
然后呢,记得先备份,而且改了的话,有些改完手机是会GG的,比如摄像头 用不了的等,所以并不是最优方案,这个时候idea来了,如果Hook掉王者荣耀 获取手机机型的方法,直接让该方法返回ov系列的机型信息不就可以了? 还记得xposed里有个setResult()设置返回值的方法吧。套路就这样 接下来就是一顿推敲了。
1.胡乱分析
分析下怎么获得设备品牌与版本号的方法,这个谷歌或者百度一搜就有了, 都是通过android.os.Build.xxx获得:
点进去Build类的源码看看:
嗯,都是static修饰的静态成员,最简单的就是直接通过Xposed提供的setStaticObjectField直接修改成我们想要的值,我们可以把Build里的静态成员都打印出来,看下哪些是需要 我们自行修改的:
输出结果:(依次为魅蓝E2和Oppo R9s)
对比得出需要修改如下字段:
- MANUFACTURER,BRAND ==> OPPO
- PRODUCT,DEVICE ==> R9s
- MODEL ==> OPPO R9s
如果要修改系统版本号:对应RELEASE,SDK和SDK_INT字段 知道干什么了,接着就可以开始写代码了,代码非常简单:
运行重启一波,打开我们自己的模块,看看打印的Log:
可以,修改成功,打开酷(基)安看看,依次点击我->更多->我的机型,(¯﹃¯)
滑稽,接着打开手机QQ,随便发送一条说说,看下带的后缀是什么机型: