wa倚楼听风雨 发表于 2022-8-2 09:26

使用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










yanglixing 发表于 2022-8-2 14:30

ubuntu不用考虑依赖什么的莫名其妙的问题

wa倚楼听风雨 发表于 2022-8-3 02:29

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

Sealsclerk 发表于 2022-8-2 12:02

学习一下,正好对ubuntu有了解

zouwei20081305 发表于 2022-8-2 15:19

学习一下{:1_893:}

emptynullnill 发表于 2022-8-2 17:01

是你Java或者Android SDK环境变量有问题吧

liltn 发表于 2022-8-2 18:15

学习了,感谢楼主分享{:1_921:}

52new 发表于 2022-8-2 18:25

没root这个也什么用

QiunanRima 发表于 2022-8-2 18:45

楼主,如果要修改init怎么办

jonswolf 发表于 2022-8-2 18:54

看看楼主

测试学学 发表于 2022-8-2 19:17

谢谢分享 学习
页: [1] 2 3 4
查看完整版本: 使用ubuntu 22.04 编译Magisk 25.2