吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6076|回复: 35
收起左侧

[Android 原创] android-pixel4a-刷机系列-(2)结合magisk进行刷机

  [复制链接]
2016976438 发表于 2023-6-29 21:16
本帖最后由 2016976438 于 2023-6-29 21:16 编辑

android-pixel4a-刷机系列-(2)结合magisk进行刷机

刷写设备需要用到 fastboot 以及 adb

你可以通过 ubuntu software 进行安装 android studio 里面自带了 adb和fastboot
也可以通过 aosp 源码中 构建 adb和fastboot

要从源码中构建 adb和fastboot输入下面的命令进行构建

make fastboot adb

它会构建在 out/host 中,其中有 windowslinux
为了方便,我们将linux的拷贝出来

# 复制 二进制工具
cp -r out/host/linux-x86/bin ~/android-tools
# 设置环境变量
PATH=~/android-tools:$PATH
# 查看
adb --version
fastboot --version

当然为了方便,您可以修改 .bashrc 让其永久生效,否则只能在当前窗口生效

刷机注意项

刷机前,请用官方包 尝试刷机一次 。注意选择好设备,这样当你变砖头的时候可以救回来。
https://developers.google.com/android/images?hl=zh-cn

还有,一定要注意 oem 解锁。 不然你会像我一样,得邮寄到高人地方解锁,网上破解oem 资料很少。所以买之前注意了。

开始刷机

在此之前看看adb 是否正常工作

adb devices
List of devices attached
08041JEC215436        no permissions (missing udev rules? user is in the plugdev group); see [http://developer.android.com/tools/device.html]

很明显我出现了问题。
参考解决方案:https://blog.csdn.net/weixin_42814000/article/details/125626840

cd /etc/udev/rules.d
sudo vim 51-android.rules

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server 
adb start-server

接下来重新插入手机即可正常显示

bootloader

刷机需要进入 bootloader 进行引导,注意没解锁的需要解锁下

使用下面的命令重启手机并进去 bootloader

adb reboot bootloader

fastboot

在使用fastboot 之前,先确认下您的构建路径

echo $ANDROID_PRODUCT_OUT

如果您没有任何值,可能你关闭过命令窗口。此时需要重新设置环境

# 参考上一节
# 启动环境
source build/envsetup.sh
# 选择构建目标
lunch aosp_sunfish-userdebug
# 此时在进行查看
echo $ANDROID_PRODUCT_OUT

~/aosp/out/target/product/sunfish

随后可以正式进行刷机
在设备处于 fastboot 模式后,运行以下命令

#查看一下
fastboot devices
#根据 ANDROID_PRODUCT_OUT 指向的构建路径 刷新全部镜像分区
fastboot flashall -w

-w 选项会擦除设备上的 /data 分区;该选项在您第一次刷写特定设备时非常有用,但在其他情况下则没必要使用。

重点来拉!!

你会发现你如何都开不了机,卡在了 fastboot界面。那么恭喜你成功踩坑。
为什么呢?因为它要驱动。难受的是官网一点都没有提到,所以得通过官方出厂刷写工具刷回来。
https://developers.google.com/android/images?hl=zh-cn
而官方刷机工具中比我们多了

fastboot flash bootloader bootloader-sunfish-s5-0.5-9825683.img
fastboot flash radio radio-sunfish-g7150-00112-230505-b-10075601.img
vendor.img

参考debug_cat的文章http://www.debuglive.cn/article/1044719292299345920
所以我想到两种方案

  1. 将我们的 boot.img system.img product.img ...等等覆盖官方刷机包,在进行刷入
  2. 下载驱动二进制文件 重新编译

我就选择第二种方案

1.下载驱动的两个文件
注意区分下设备
https://developers.google.com/android/drivers?hl=zh-cn

2.解压在aosp 根目录下,会有两个文件
extract-google_devices-sunfish.sh
extract-qcom-sunfish.sh

3.运行它们 后你就可以在 vendor/google_devices/sunfish/proprietary 下看到
bootloader.img
radio.img
vendor.img

4. 重新编译
source build/envsetup.sh
lunch aosp_sunfish-user
m -j1

如果您编译失败,那么您需要执行make clean 清理下out 中的缓存.
但是你就会变成全量编译,又得等几个小时了

其他问题

默认会给您刷到未激活的slot 比如 b slot(槽) ,如果它启动的时候不知道引导哪个槽
参考解决: https://developers.google.com/android/images?hl=zh-cn

    fastboot set_active b
    fastboot reboot bootloader

为了方便,可以把引导刷入全部槽

fastboot flashall -w --slot=all

刷到哪个槽注意看日志
如带有

boot_a
boot_b
system_a
system_b
...

完成后重新启动下

 fastboot reboot

magisk

为了获取 root 权限。我们需要安装 magisk 并修补 boot.img
关于每个 镜像的作用,参考下面 chatGpt 的答案:

boot.img(引导镜像):
boot.img 是 Android 系统的引导镜像,用于启动设备。它包含了 Linux 内核和设备树(Device Tree),以及启动所需的一些初始化脚本和参数。在设备开机时,boot.img 是首先加载和执行的镜像文件。

system.img(系统镜像):
system.img 是 Android 系统的核心镜像,包含了操作系统的主要组件和应用程序。它包括了框架层、系统应用、系统服务、库文件和其他共享资源。当设备启动完成后,系统镜像会被加载到内存中,并提供给用户在设备上运行各种应用程序。

vendor.img(供应商镜像):
vendor.img 是供应商定制的镜像文件,包含了设备制造商提供的特定驱动程序、库文件、二进制文件和配置文件。这些文件与设备的硬件和特性有关,而不是由 AOSP 提供。供应商镜像与系统镜像分开,以便供应商可以单独更新和管理自己的部分。

除了上述常见的镜像文件,还有其他一些可能出现的镜像文件,例如:

userdata.img(用户数据镜像):
userdata.img 包含用户的个人数据,如应用程序数据、设置、多媒体文件等。它是用户在设备上存储数据的主要分区,通常在设备的内部存储器上。

cache.img(缓存镜像):
cache.img 是系统的缓存分区,用于存储临时文件和应用程序的缓存数据。这些数据可以加快应用程序的启动速度和系统操作的响应速度。

recovery.img(恢复镜像):
recovery.img 是用于恢复和修复设备的镜像文件。它包含了一个轻量级的恢复系统,可以用于更新系统、进行备份和恢复、清除数据等操作。

这些镜像文件在 AOSP 编译过程中生成,并在设备的启动过程中使用。它们分别承载不同的功能和组件,构成了完整的 Android 操作系统。

对于magisk我用的 magisk delta,因为它拥有以前 magisk 隐藏root的功能

安装 magisk delta

参考下载: https://huskydg.github.io/magisk-files/intro.html

当然使用命令更加简单

# 下载
wget https://github.com/HuskyDG/magisk-files/releases/download/fdac22ba-delta/app-release.apk

# 安装
adb install app-release.apk

接下来你需要将 boot.img 拷贝到 手机目录里,然后通过 matisk 修补

cd out/target/product/sunfish

adb push boot.img /sdcard/

接下来看图修补 boot.img 并重新刷入

1.点击安装

image01.png

2.选择修补的文件

image02.png

3.记录修补后的位置,然后 adb pull出来重新刷

image03.png

adb pull /sdcard/Download/magisk_patched-25210_hdiWX.img .

adb reboot bootloader

fastboot flash boot magisk_patched-25210_hdiWX.img

fastboot reboot

接下来进手机查看 magisk 设置下 zigisk 重启下手机

image04.png

尝试获取 root 权限

adb shell su

后续讲解内核编译

免费评分

参与人数 16威望 +2 吾爱币 +113 热心值 +15 收起 理由
chen4429 + 1 我很赞同!
qtfreet00 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
爱的太迟 + 1 + 1 用心讨论,共获提升!
阿哲呀 + 1 我很赞同!
cntjgaowei + 1 + 1 谢谢@Thanks!
ab21cn + 1 + 1 谢谢@Thanks!
唐小样儿 + 1 + 1 我很赞同!
YY0716 + 1 + 1 我很赞同!
debug_cat + 2 + 1 用心讨论,共获提升!
T0T20230313 + 1 谢谢@Thanks!
LZJ123lzj + 1 谢谢@Thanks!
heer + 1 + 1 用心讨论,共获提升!
孙天琪 + 1 + 1 谢谢@Thanks!
为之奈何? + 1 + 1 我很赞同!
MYPcodcsja + 1 + 1 谢谢@Thanks!
ytfh1131 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sai609 发表于 2023-7-1 08:35
台电平板2:P98HD四核(A2Q6),(Android版本4.2.2),CPU型号 ARM Cortex-A9,瑞芯微RK3188;
台电平板3:P10八核 (M3F5),(Android版本7.1.2),CPU型号 瑞芯微 RK3368-H;

so有啥办法刷机安装win XP或者win 7或者Chrome OS系统而使用桌面PC模式,用于码字做表,平替笔电轻办公??
mffhxa 发表于 2023-7-1 18:04
现在搞这个没啥意思了,也没太多好玩的模块,银行APP好多又专门针对这个,隐藏了都没用,几个银行APP,交管12123,数字人民币闪退没法用。之前一直买小米手机,解锁刷机,。。。现在买个三星手机,不再折腾。
lzqhyzz 发表于 2023-6-29 21:41
jinyuliangyuan 发表于 2023-6-29 23:12
德尔塔,可以
lsy832 发表于 2023-6-29 23:58
谢谢教程很详细
xHack 发表于 2023-6-30 00:55
原创精贴,支持原创,教程非常仔细
cxincn 发表于 2023-6-30 06:58
支持原创,教程非常仔细
perfectman 发表于 2023-6-30 07:15
支持原创,教程非常仔细
Easonll 发表于 2023-6-30 08:46
终于等到刷机教程了,感谢感谢
abc023119 发表于 2023-6-30 09:02
能整个花W的 包就更Ok了
Sovenx 发表于 2023-6-30 09:17
GX感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 17:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表