使用ubuntu 22.04 编译Magisk 25.2
w10上折腾了两天,无论用python命令编译还是Android Studio,都各种报错,最后还是用ubuntu编译成功了,故整理下分享给需要的朋友,对论坛发帖这些格式没研究,将就看Magisk github地址:https://github.com/topjohnwu/Magisk
1.源码的问题
官方命令:git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git
大概率是会卡住而且下载不完整第三方库的(Magisk/native/src/external/),源码缺少的库如图,请手动下载解压,把每个库文件补全,如图:
具体查看源码根目录文件.gitmodules,里面有下载连接与对应释放路径(注意别漏了termux-elf-cleaner这个工具的补充),需要注意的是两个文件的下载,这里放上换源链接:
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/zlib
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/pcre
2.配置环境变量,这部分可以看看官方文档
打开配置文件命令:sudo gedit /etc/profile
文件末尾添加
export PATH="/path/to/androidstudio/jre/bin:$PATH"
export ANDROID_SDK_ROOT="/path/to/Android/Sdk"
因为在Documents安装了android studio,所以示例路径如下(最新版AS使用的jdk11,自行配置这个版本应该也行):
export PATH="/home/lin/Documents/android-studio/jre/bin:$PATH"
export ANDROID_SDK_ROOT="/home/lin/Android/Sdk"
编辑完保存,退出
然后在终端,输入命令用于更改生效:source /etc/profile
测试下路径,看看输出的路径是否正确
echo $PATH
echo $ANDROID_SDK_ROOT
3.下载编译magsik用NDK
默认源码已经准备好了,执行:./build.py ndk呵,那就坑爹大发了
还是吃了没学python的亏,这步折腾了老久,不行,我还是得吐吐槽.
首先是获得下载的ndk地址:build.py搜索github,然后print(url),在执行命令就能得到:https://github.com/topjohnwu/ondk/releases/download/r25.1/ondk-r25.1-linux.tar.gz
然后用浏览器试了试,流下了感动的泪水.熟悉python的朋友应该可以直接改代码,跳过下载这步命令,直接编译已经下载好的ondk的.
这里我是用的方法:是使用https://d.serctl.com/这个网站,把releases链接提交,然后获取下载地址:直接把build.py的url写死;
然后./build.py ndk,轻松的打完收工.
4.编译
编译全部
./build.py all
1)/Magisk/outapk文件
2)/Magisk/native/out 可执行文件/.a静态库
到这里,你以为可以打完收工了:不出意外的出意外了,报错了对吧.
1)有提到crc32_z这个字符错误的,把相关位置改crc32就行了
2)有提到termux-elf-cleaner这个的,回顾下第一步,看看Magisk/tools/termux-elf-cleaner这个文件夹是不是忘了弄了
最后附上主要有质量的参考的链接,重复太多的内容我就懒得弄了(感谢网友分享):
https://blog.csdn.net/u012932409/article/details/123001265
https://zhuanlan.zhihu.com/p/385255256
ubuntu不用考虑依赖什么的莫名其妙的问题 lose2836 发表于 2022-8-2 22:55
现在问题是,很多软件都有检测root机制,root后变得麻烦了。
关于magsik-root检测的攻与防,我使用过的两种方案都是行之有效的.检测得狠的,像王者荣耀体验服,一般点的像建行root提示,12123闪退,支付宝不能刷脸之类的.都是没问题的.
1.如果不要求magsik版本,也就是magsik版本23,有一个Magsik-lite的方案,具体使用的是酷安博主-赤风铃2021.5.5日发布的一篇文章,
2.第二种也就是常规的shamiko +hidemyapplist的方案,也是能起到一样的效果,操作过程也是很平滑的
3.第三种站内看到的,不确定:https://www.52pojie.cn/thread-1442241-1-1.html 学习一下,正好对ubuntu有了解 学习一下{:1_893:} 是你Java或者Android SDK环境变量有问题吧 学习了,感谢楼主分享{:1_921:} 没root这个也什么用 楼主,如果要修改init怎么办 看看楼主 谢谢分享 学习