-
-
模块解决pixel7的32位兼容问题
-
发表于: 2025-10-8 17:43 572
-
背景
前端时间入手了一台pixel7,但是发现pixel7只支持64位,遂搜索资料查看有无解决方法,发现一篇文章有讲到e10K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2B7j5i4u0$3K9i4y4%4i4K6u0W2j5$3!0E0i4K6u0r3i4K6y4r3M7q4)9K6c8o6p5#2z5o6M7`.
了解到pixel7实际支持32位但是未启用,所以其中主要的操作是修改build.prop配置文件来实现的。
作者选择魔改magisk的原因是模块的加载时机,magisk在注入init进程后才会加载module,但是KPM加载时机要更早,于是根据该作者的方法编写了KPM模块来适配,同时也是借由此机会尝试下AI辅助开发。
过程
直接选择把上文作者的代码投喂给了cursor,然后生成了第一版,make时产生了报错,这个交由了AI再进一步分析,他很轻便地就解决了这个报错。

然后编译了第一版的模块,装进手机后发现没有生效,查看日志明白是HOOK没有生效
cheetah:/ # dmesg | grep zygote32 [ 0.121169] [+] KP D name: kpm-pixel7-zygote32 [ 0.121311] KP load kpm: kpm-pixel7-zygote32, rc: -2
再次跟进报错信息让AI分析

到这里其实原因就已经明了了,是filp_open、vfs_llseek、kernel_read此类内核API地址获取失败。
此处之前稍微阅读过kernelPatch的源码,了解过他有去获取内核API的方式,最终将kallsyms_lookup_name函数提示给AI去做了修正,再次编译后基本就无误了。
最终也是成功兼容了32位。


实际测试32位的apk后也确实ok
结言
其实笔者本人不管是对开发也好,Apatch的理解也好,都是一知半解,但是在结合AI的情况下也可以轻易地将简单想法变为现实,我觉得这相较于以往毫无疑问是一个重大的变化,也深深感慨如今AI发展速度之快。
相关模块也放在了github,希望可以给同样被pixel7此问题困扰到的人提供一个简单的解决方式。
赞赏
- 模块解决pixel7的32位兼容问题 573
- 安卓壳学习记录 13935
- [求助]fridaHOOK的寄存器值与IDA调试时不同 1035
- [原创]全国大学生软件安全攻防赛初赛wp 8905
- [原创]zygisk改机模块demo 8743