首页 > 其他分享 >一加七Pro刷Lineageos21(kernelsu+MicroG)

一加七Pro刷Lineageos21(kernelsu+MicroG)

时间:2024-06-07 09:33:24浏览次数:20  
标签:一加 github system kernelsu https android com MicroG

前言

前几天我已经刷了Lineageos21(一加七Pro刷lineageos21(kernelsu+gapps)),但是体验下来有两个很严重的bug:无法接打电话,没有声音。

收短信倒是很正常,但电话打进来只会显示号码,不会显示接听界面(对方那边显示正在通话中,也就是挂断了),拨打电话会显示已结束。

测试发现是刷了kernelsu内核导致的,如果只是刷gapps使用正常,所以想自己编译一个kernelsu试试。

MicroG

下载地址: https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases

正好又在酷安看到这个可以替代gapps的东西,在酷安搜索沐浴森林客这个人,他有几篇关于MicroG的安装和使用说的很详细。

相比于gapps的优点:

  • 开源
  • 省电
  • 简洁,可以只安装gapps里面某个APP

安装方式

  1. 作为magisk/kernelsu插件刷入
  2. 在recovery模式下刷入
  3. 刷入带有MicroG的系统

这里为了方便我直接选择第三种,MicroG专门为lineage创建了一个项目(LineageOS for microG),将microg直接内置在系统刷机包里。这个项目也是开源的:https://github.com/lineageos4microg/lineageos4microg.github.io,里面还提供了docker镜像用于编译。

microg需要依赖签名欺骗(Signature Spoofing),因为microg提供的组件和谷歌官方的APP签名不一样,这样就无法过谷歌的验证。

而lineage官方拒绝加入该补丁, 所以microG组织只能自己另开一个项目。 另外,其他一些支持签名欺骗的ROM:https://github.com/microg/GmsCore/wiki/Signature-Spoofing

如果不想重新刷系统,可以用一个叫FakeGApps的xposed插件达到同样的效果。使用看后面

LineageOS for microG

去官网下载刷机包刷入即可,步骤和官方的lineage是一样的,而且也提供了很多设备的刷机包。

kernelsu

编译具体可以看之前的两篇文章:

这里补充几个内容

下载设备树

breakfast guacamole下载设备树提示失败(只有Lineageos21才需要自己下载,之前的版本都会自动下载),原因应该是下面的提示:

那只能自己去github下载了,首先在官方仓库(https://github.com/LineageOS)里搜索guacamole可以知道一加七Pro的仓库是android_device_oneplus_guacamole

下载到指定的目录里:

git clone https://github.com/LineageOS/android_device_oneplus_guacamole -b lineage-21 device/oneplus/guacamole

根据仓库里的lineage.dependencies文件可以知道还需要另一个仓库:

git clone https://github.com/LineageOS/android_device_oneplus_sm8150-common -b lineage-21 device/oneplus/sm8150-common

[
  {
    "repository": "android_device_oneplus_sm8150-common",
    "target_path": "device/oneplus/sm8150-common"
  }
]

以此类推把剩下的仓库也下载了:

git clone https://github.com/LineageOS/android_hardware_oplus -b lineage-21 hardware/oplus

git clone https://github.com/LineageOS/android_kernel_oneplus_sm8150 -b lineage-21 kernel/oneplus/sm8150

提取blob

温馨提示:有时候从刷机包里提取会有一些文件说不存在,这个时候试试从已安装的手机利用adb提取。 我在Lineage21从刷机包里提取没问题,但是Lineage20很多文件不存在,用adb提取正常

官方文档: https://wiki.lineageos.org/extracting_blobs_from_zips#extracting-proprietary-blobs-from-payload-based-otas

首先假设当前路径就是lineage源码的根路径,接着执行以下步骤:

mkdir system_dump/
cd system_dump/

安装依赖:

sudo apt-get install python3-protobuf

下载对应的工具(此时在system_dump目录):

git clone https://github.com/LineageOS/android_prebuilts_extract-tools android/prebuilts/extract-tools
git clone https://github.com/LineageOS/android_tools_extract-utils android/tools/extract-utils
git clone https://github.com/LineageOS/android_system_update_engine android/system/update_engine

然后去官网下载最新的刷机包解压:

unzip lineage-*.zip

提取payload.bin里的img文件

./android/prebuilts/extract-tools/linux-x86/bin/ota_extractor --payload ./payload.bin

挂载img文件,后面三个文件不存在,可以不执行

mkdir system/
sudo mount -o ro system.img system/
sudo mount -o ro vendor.img system/vendor/
sudo mount -o ro odm.img system/odm/
sudo mount -o ro product.img system/product/
sudo mount -o ro system_ext.img system/system_ext/

接着cd到设备的根路径,提取文件:

pwd 看一下当前绝对路径
cd ../device/oneplus/guacamole/
./extract-files.sh 上面看到的绝对路径 也就是system_dump

返回源码根路径,卸载并删除多余文件

sudo umount -R system_dump/system/
rm -rf system_dump/

从adb设备提取blob

连接adb,在device/oneplus/guacamole/下执行./extract-files.sh就会提取。

如果从刷机包提取有很多失败,就可以用这种方式,需要先在手机刷入相应的系统。

编译内核

source build/envsetup.sh

breakfast guacamole

make bootimage

然后就能看到内核文件,刷入手机依旧是老问题,无法接打电话,没有声音。翻了下issue,没有人提出这个问题,难道只有一加七Pro这个设备存在这个问题。

本来顺便编译下系统,但是不通过,也没显示错误,只看到一堆警告,就没再试了。

排查原因

因为之前使用Lineageos17+kernelsu没问题,为了进一步确认是新系统还是新版本kernelsu的问题,我又试了kernelsu之前的版本,还是一样,一刷就没声音。

那感觉是Lineageos21和kernelsu存在兼容问题,我又去测试了Lineageos20

降级Lineageos20(Android13)

直接在recovery刷的话会显示denying OTA because it's SPL downgrade,需要重新刷一遍dtbo.img、vbmeta.img和 boot.img。

如果没有这三个文件,可以看上面提取blob的方法用ota_extractor提取img。

降级到Lineageos20没出现没声音和无法接打电话的情况,那就是Lineageos21和kernelsu不兼容的问题了。不过在Lineageos20刚开始打开kernelsu管理器看没生效,当我第二天打算继续降级到Lineageos19.1的时候,打开管理器一看又生效了,也是奇怪,重启又没了。

内核使用github的和自己编译的都有这种情况,只能继续降级到Lineageos19.1了。

降级Lineageos19.1(Android12)

也是一样的问题,编译内核时下载的源码kernelsu版本换成v0.9.4(11838)就可以了,看来是0.9.5就开始加入了不支持gki设备的代码。

刷机

最后就选择了Lineageos19.1+kernelsu v0.9.4(11838),然后开始刷microg

microg

https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases

MinMicroG-Minimal-2.12.0-20230729205934.zipMinMicroG-MinimalIAP-2.12.0-20230729205917.zip,后者就多个了谷歌商店。

我在kernelsu作为模块刷入失败,所以在recovery刷入,输完重启打开运行adb shell npem给microg授权一些权限,因为我发现有两个权限在界面授权没响应。

ZygiskNext

https://github.com/Dr-TSNG/ZygiskNext/releases

刷这个是因为需要安装lsposed,下载zip在kernelsu管理器作为模块刷入

lsposed

https://github.com/mywalkb/LSPosed_mod

下载LSPosed-v1.9.3_mod-7244-zygisk-release.zip作为模块刷入

FakeGApps

https://github.com/whew-inc/FakeGApps/releases

下载安装,然后在lsposed启用勾选系统框架,重启就会看到microg设置的自我检查->签名伪装支持生效了,然后把其他未勾选的权限勾选上就可以,这个时候打开microg的自我检查应该全部都勾选了

safetynet-fix

https://github.com/Displax/safetynet-fix/releases/tag/v2.3.1-MOD_3.0

下载后作为模块刷入,用于通过safetynet验证。

Shamiko

https://github.com/LSPosed/LSPosed.github.io/releases

下载后作为模块刷入,这个是为了隐藏Zygisk注入痕迹的,如果没安装lsposed,就不需要用它来隐藏

Hide-My-Applist

https://github.com/Dr-TSNG/Hide-My-Applist

在lsposed里启用,用来隐藏root有关的应用的

测试

然后在microg设置里添加谷歌账号->注册设备->开启云端消息推送->开启SafetyNet, (这些过程都需要科学)

可以看到safetynet测试都通过了,但是我在谷歌商店下载的一些测试软件都显示未通过,不清楚哪里的问题,遇到了打不开的APP再说。

APP检测

Momo

没有检测到root和lsposed,这几个就不用管了,一般APP都懒得检测这些。

Ruru

全部通过检测

Hunter

这个可能存在shamiko就很牛逼了,不过只是maybe,只要不是很严的APP都是疑罪从无。下面几个就不用看了,APP如果检测lineage系统的话感觉也不合理。并不是只有逆向人员才用lineage,正常用户也会使用。

引用链接

  1. https://lineage.microg.org/#
  2. https://review.lineageos.org/c/LineageOS/android_frameworks_base/+/195284
  3. https://github.com/whew-inc/FakeGApps/releases

本文由博客一文多发平台 OpenWrite 发布!

标签:一加,github,system,kernelsu,https,android,com,MicroG
From: https://www.cnblogs.com/kanadeblisst/p/18236533

相关文章

  • springboot 接口返回数据统一加密
      @Aspect@Component@Slf4jpublicclassAESTimeAspect{@Around("execution(*com.trt.sea.xxserx.controller*..*Controller.*(..))")publicObjecthandleAroundControllerMethod(ProceedingJoinPointpjp)throwsThrowable{longst......
  • 一加3T三段式开关切换 openpilot 版本
    一加3T三段式开关切换openpilot版本 修改continue.sh 文件如下 通过SSH登录到EON中,把openpilot不同版本的代码克隆到 /data/forks 目录下,然后根据自己的需求修改 PATH_FORK_{N} 的路径即可。修改文件存储目录:第4行修改不同版本OP目录:5~7行(分别对应三段......
  • 一加 Ace 3 售价2599元起,性能、屏幕、续航、质感全面领先同档
    在2024年1月4日,一加正式发布了Ace系列新品一加Ace3。作为2024年的开年之作,一加Ace3展现了全面拉满的性能、前所未有的旗舰体验以及超越预期的质感设计。一加Ace3搭载了骁龙8Gen2+LPDDR5X+UFS4.0性能铁三角,这使得它的性能达到了前所未有的高度。这款手机全球首发采用了8TLTPO......
  • 十年超越之作一加12售价4299元起 产品力超越所有骁龙8Gen3 Pro版旗舰
         2023年12月5日,一加正式发布十年旗舰一加12。作为一加十年超越之作,一加12秉持「产品力优先」理念,带来多项领先行业的首创技术。一加12全球首发拥有医疗级护眼方案和行业第一4500nit峰值亮度的2K东方屏,完整搭载Find影像团队倾力打造的「新一代超光影影......
  • PG国产电竞巨兽震撼登场:一加12搭载骁龙8 Gen3,首发最强电子游戏屏幕
    一加官微宣布,备受期待的一加12将于12月4日发布,成为一加品牌迎来的十周年力作。品牌创始人刘作虎在十周年围炉夜话中表达了对这一时刻的感慨,并承诺与用户共同见证一加12的十年超越之作。据PGSOFT电子游艺官方透露,一加12至少有两大引人注目的卖点。首先是其搭载的首发国产2K东方屏,被......
  • 一加ace竞速版手机root记录
    root需要的大致步骤是:1解锁bootloader2安装magisk,patchbootimage3安装patch好的rom可以参考 https://androidbiits.com/root-oneplus-ace-racing-pgz110-easily/ 手动会复杂一些 ,所以我使用的网上的一键刷机工具,叫大侠阿木按照提示123操作,下载一个对应版本的rom,刷进去就好......
  • 一加ace竞速版手机root记录
    root需要的大致步骤是:1解锁bootloader2安装magisk,patchbootimage3安装patch好的rom可以参考https://www.rootmeguide.com/root-oneplus-ace-racing-using-magisk/ 手动会复杂一些 ,所以我使用的网上的一键刷机工具,叫大侠阿木按照提示123操作,下载一个对应版本的rom,刷......
  • 一加ACE2 PRO打破现象 再造爆款
    打破现象级的方式,就是再造一个爆款!一加Ace2Pro首批20万备货,3分钟全部售罄!下次开售时间,8月26日本周六10:00评论 (0)评论暂无更多......
  • 免费修复一加手机高通崩溃qualcomm crashdump mode
    qualcommcrashdumpmodequalcommcrashdumpmodequalcommcrashdumpmode高通崩溃高通崩溃高通崩溃希望崩溃的小朋友们,送修之前能搜到。。线刷下载,挨个刷。。国内找个网站比较恶心,下载要要两块钱。。这个免费。。。https://onepluscommunityserver.com/list/Unbrick_Too......
  • 在一加7上kali nethunter安装好后更新到最新版本,vnc打开失败问题解决方法。
    首先说明nethunter的vnc本身就不稳定,是兼容性问题,而非非正常关闭导致的。解决方法:方法一:查看nethunre主app的开启vnc命令是不是终端不识别。现在vnc叫做kex。方法二:更新到最新版本,sudoaptupdate&aptupgrade,如果还是打不开的话,更新nethunre主app,在https://store.nethunter.co......