文章目录
- 1 Frida及Google Pixel介绍
- 1.1 why Frida
- 1.2 Why google Pixel
- 2 Google Pixel Root
- 2.1 环境准备
- 2.2 解锁手机
- 2.2.1 OEM解锁
- 2.2.2 进入bootloader模式
- 2.3 手机刷机
- 2.3.1 下载谷歌原生系统
- 2.3.2 进入bootloader状态
- 2.3.3 刷入官方原生系统`Android 8.1`
- 2.4 TWRP及Magisk下载
- 2.4.1 下载`twrp`
- 2.4.2 下载Magisk
- 2.4.3 推送文件
- 2.5 正餐root开始
- 2.5.1 进入临时的TWRP模式
- 2.5.2 安装TWRP
- 2.5.3 安装Magisk
- 3 大功告成
- 3.1 开机成功
- 3.2 无限重启
1 Frida及Google Pixel介绍
1.1 why Frida
frida 是一款基于python + javascript 的hook框架,可运行在android,ios,linux,windos等各平台,主要使用动态二进制插桩技术。它提供了功能简单的python接口和功能丰富的js接口,使得hook函数和修改so编程化,使用frida可以获取进程的信息(模块列表,线程列表,库导出函数),可以拦截指定函数和调用指定函数,可以注入代码,使用frida我们可以对进程模块进行手术刀式剖析。
总而言之,是当前我们Android apk逆向调试居家旅行必备的防身利器。
1.2 Why google Pixel
在手机选择上,优先选择谷歌系列手机,Nexus
和Pixel
系列,笔者刚好手头有Pixel和Pixel 3手机,就直接root了这两款,大家感兴趣可以某鱼几百块钱入手一台。Pixel 3 root较为简单,笔者只用了20分钟就完成,Pixel手机却花了本人一天,中间踩坑无数,终于还是root成功,感触颇深,所以先记录一下Pixel手机的root之旅。
2 Google Pixel Root
2.1 环境准备
除了准备Google Pixel手机外,你还需要准备一台机器,windows和ubuntu都可以(最好在虚拟机上面运行),安装配置好adb环境。
2.2 解锁手机
2.2.1 OEM解锁
- 在手机上找到
设置→系统→关于手机→版本号
,连续快速的点击版本号
五下,打开开发者选项
,即可进入开发者模式,然后进入设置→系统→开发者选项
,打开USB调试选项
。 - 点击oem解锁。
2.2.2 进入bootloader模式
- 手机通过数据线连接电脑,在关机状态下,同时按住电源键和音量下键不放。或者开机状态下执行
fastboot flashing unlock
- 如果还不行试试其他指令
fastboot oem unlock
fastboot flashing unlock_critical
PS:如果手机OEM解锁成功,Device is
显示unlocked
。在刷机中,经常有人会遇到刷机失败,手机变成砖头的情况,只要我们手机能进入bootloader模式就不用怕,多试试几个不同版本的镜像,通过adb push指令推到手机内存里进行安装,总能成功的。笔者就是刷Android 8失败了,降到7,升到9都不行,最后又换成Android 8.1才成功的。
2.3 手机刷机
2.3.1 下载谷歌原生系统
到谷歌的官方工厂镜像网站,打开这个网站可能需要科学上网。网站中间有一些操作指南,右边就是手机型号一览表,在这里我们选择Pixel
的型号sailfish
,安卓系统Android 8.1
的镜像,有部分版本的镜像区分欧版美版。此时可以看一下手机后面,写着G-2PW4100就是美版,4200就是欧版。可以看到从安卓7到安卓9均支持。
2.3.2 进入bootloader状态
首先将手机进入bootloader
状态,执行指令
adb reboot bootloader
或者手动操作,流程如下:
- 将
USB
线断开,并确保手机有70%
以上的电量; - 将手机完全关机;
- 同时按住音量向下键和开机键;
- 手机将进入
BootLoader
状态;
2.3.3 刷入官方原生系统Android 8.1
手机用USB线连上电脑,运行脚本,将系统刷进手机
- 将系统镜像解压
- 进入解压目录,执行指令
./flash-all.sh
(Mac/Linux系统)或者./flash-all.bat
(windows系统) - 泡杯咖啡,让子弹飞一会儿
刷机完成后,手机会自动重启,重启完成后即可自动进入系统。
记得再次打开
USB调试选项
2.4 TWRP及Magisk下载
2.4.1 下载twrp
只需要下载twrp针对Pixel sailfish
机型的镜像,刷进去即可,笔者选择的是3.2.3的版本。记住img,和zip的版本要对应好。我们下载的是twrp-3.2.3-0-sailfish.img
镜像文件。
twrp-3.2.3-1-sailfish.img
twrp-pixel-installer-sailfish-3.2.3-0.zip
2.4.2 下载Magisk
Magisk
是由中国台湾省topjohnwu
开发的一款完全开源的root
软件,其github
项目托管主页在这里,大家进去下载release版本即可。
笔者还是稳健的选择了适中的版本:
Magisk-v17.3.zip
2.4.3 推送文件
将Magisk-v17.3.zip
及twrp-pixel-installer-sailfish-3.2.3-0.zip
复制到手机/sdcard/
目录下。
2.5 正餐root开始
2.5.1 进入临时的TWRP模式
- 然后将手机设置到
bootloader
模式 - 使用
fastboot boot twrp-3.2.3-0-sailfish.img
命令将镜像刷进去。
2.5.2 安装TWRP
- 在临时的TWRP模式首页,选择
install
- 进入
/sdcard/
目录下点击twrp-pixel-installer-sailfish-3.2.3-0.zip
安装 - 安装好后,点击上方按钮返回主页,继续安装
千万千万不要选择重启
2.5.3 安装Magisk
- 安装完TWRP后,点击上方返回首页,选择
install
- 进入
/sdcard/
目录下点击Magisk-v17.3.zip
安装 - 安装好后重启到系统
- 如果让选择
slot A
或者slot B
,根据current slot
选择
安装完后,不要选择安装TWRP的两个默认安装选项
3 大功告成
3.1 开机成功
- 如果此刻手机能够正常开机,并且安装了
Magisk
软件 - 此时,手机打开debug调试模式,电脑执行
adb shell
和su
两条指令,手机同意adb获取root权限,大功告成。
在手机上找到设置→系统→关于手机→版本号
,点击版本号
五下,打开开发者选项
,然后进入设置→系统→开发者选项
,打开USB调试选项
。然后USB连接到电脑,使用adb
命令连上去。手机上会出现授权,点击接受该指纹的电脑连接。
$ adb shell
sailfish:/ $
sailfish:/ $
sailfish:/ $ whoami
shell
sailfish:/ $
此时是shell
权限,切换到root
用户:
sailfish:/ $ su -
此时手机上会出现Magisk
的超级用户请求,点击允许,com.android.shell
即可获取root
权限。
点击允许之后,su -
这个命令才会返回,然后运行whoami
命令,可以看到已经是root
了。
sailfish:/ #
sailfish:/ # whoami
root
sailfish:/ #
这时候就可以用root
的权限来做一些事情了。
3.2 无限重启
- 笔者就遇到多次这种情况,一度以为手机变砖头,幸亏很有耐心
- 选择其他工厂镜像,重复上面步骤,再重新刷机,刷TWRP,安装Magisk,重复
- 直到成功
PS.写在最后,在root Pixel 3的时候,10几分钟一次就成功了,root Pixel用了大半天,功夫不负有心人,终于挽救了一块砖头。