Frida学习之旅(一)--Google Pixel手机的ROOT

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

在手机选择上,优先选择谷歌系列手机,NexusPixel系列,笔者刚好手头有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

在刷机中,经常有人会遇到刷机失败,手机变成砖头的情况,只要我们手机能进入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

或者手动操作,流程如下:

  1. USB线断开,并确保手机有70%以上的电量;
  2. 将手机完全关机;
  3. 同时按住音量向下键和开机键;
  4. 手机将进入BootLoader状态;

2.3.3 刷入官方原生系统Android 8.1

手机用USB线连上电脑,运行脚本,将系统刷进手机

  1. 将系统镜像解压
  2. 进入解压目录,执行指令./flash-all.sh (Mac/Linux系统)或者./flash-all.bat(windows系统)
  3. 泡杯咖啡,让子弹飞一会儿

刷机完成后,手机会自动重启,重启完成后即可自动进入系统。

记得再次打开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.ziptwrp-pixel-installer-sailfish-3.2.3-0.zip复制到手机/sdcard/目录下。

2.5 正餐root开始

2.5.1 进入临时的TWRP模式

  1. 然后将手机设置到bootloader模式
  2. 使用fastboot boot twrp-3.2.3-0-sailfish.img命令将镜像刷进去。

2.5.2 安装TWRP

  1. 在临时的TWRP模式首页,选择install
  2. 进入/sdcard/目录下点击twrp-pixel-installer-sailfish-3.2.3-0.zip安装
  3. 安装好后,点击上方按钮返回主页,继续安装

千万千万不要选择重启
在这里插入图片描述

2.5.3 安装Magisk

  1. 安装完TWRP后,点击上方返回首页,选择install
  2. 进入/sdcard/目录下点击Magisk-v17.3.zip安装
  3. 安装好后重启到系统
  4. 如果让选择slot A或者slot B,根据current slot选择

安装完后,不要选择安装TWRP的两个默认安装选项

3 大功告成

3.1 开机成功

  1. 如果此刻手机能够正常开机,并且安装了Magisk软件
  2. 此时,手机打开debug调试模式,电脑执行adb shellsu两条指令,手机同意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 无限重启

  1. 笔者就遇到多次这种情况,一度以为手机变砖头,幸亏很有耐心
  2. 选择其他工厂镜像,重复上面步骤,再重新刷机,刷TWRP,安装Magisk,重复
  3. 直到成功

PS.写在最后,在root Pixel 3的时候,10几分钟一次就成功了,root Pixel用了大半天,功夫不负有心人,终于挽救了一块砖头。

猜你喜欢

转载自blog.csdn.net/BrickLoveStudy/article/details/123939810