回答

收藏

App逆向 | 安卓环境搭建-LineageOS刷机指南

信息分享 信息分享 2238 人阅读 | 0 人回复 | 2020-06-11




1. 引言
好的逆向从好的环境开始,因此带大家一起折腾下我们的手机。本篇文章目的:刷入LineageOS(简称LOS) 15.1系统、Root、安装Frida与Objection工具

为什么选择LOS 15.1系统?因为据大佬所说,它比原生系统多了一些功能,如网络调试、htop工具等。它的15.1版本是基于安卓8.1开发的,大佬们目前基本用的也是安卓8.1的系统。综上,我们选择这个系统来搞机,下面的步骤可能需要科学上网。

刷机前最好先了解下相关名词的概念,推荐看这篇文章《手把手教你搭建完美的Android搞机/逆向环境》[1]
2. 设备信息
本人使用的手机为Google Pixel Sailfish,即Pixel一代。以下为它的设备信息:




主要看手机的Architecture(架构),Sailfish为arm64架构。后面多处需根据不同的架构下载不同的工具,可通过LOS Wiki[2]查看自己的设备信息。
3. 安装adb-fastboot
首先确保手机已经解除BL锁,解锁步骤请自行百度,同时保持手机电量充足。解锁后进入fastboot模式(如何进入请看标题4)如图所示:



下载地址:https://developer.android.com/studio/releases/platform-tools

LOS教程:https://wiki.lineageos.org/adb_fastboot_guide.html

1.将下载的zip解压到路径,如 E:\adb-fastboot

2.将路径 E:\adb-fastboot\platform-tools 添加到系统环境变量 'Path' 中

3.打开 cmd 输入
  1. adb version
复制代码
测试工具是否可用,如图即可:




4.打开手机设置-系统-关于手机-连续点击'版本号',直至提示'已打开开发者选项'

5.返回上层,进入'开发者选项',打开Android 调试

6.手机连接电脑,手机会跳出提示'允许USB调试?',勾选'总是允许'并点击确定

7.打开 cmd 输入
  1. adb devices
复制代码
显示手机序列号则连接成功


4. 临时刷入TWRP
临时刷入第三方 Recovery TWRP,会在重启后失效,后面会讲如何永久刷入。

美版Sailfish下载地址:https://dl.twrp.me/sailfish

官方教程:https://twrp.me/google/googlepixel.html

1.下载对应手机的TWRP最新镜像文件 img

2.手机进入Fastboot模式
  • 关机情况下,同时按住音量减键与开机键
  • 开机情况下,连接电脑,打开 cmd 输入
    1. adb reboot bootloader
    复制代码

3.数据线拔掉重新插入,cmd 输入
  1. fastboot devices
复制代码
测试fastboot是否连接成功,显示手机序列号则成功



4.cmd 输入
  1. fastboot boot <recovery_filename>.img
复制代码
临时性刷入TWRP
  • <recovery_filename>.img 为下载的镜像文件路径,可直接将文件拖入到cmd中
  • 或使用
    1. fastboot flash boot <recovery_filename>.img
    复制代码
    临时性刷入(来自LOS教程)




5.正常情况,刷入TWRP后会自动进入,若没有进入TWRP,参考下方
  • 关机,进入Fastboot模式,按音量减键,选择'Recovery Mode',按开机键进入TWRP



6.进入TWRP前,可能会出现两个界面
  • 一个是有滑块的界面,询问是否允许修改系统分区,滑开即可
  • 一个是设置了锁屏密码时,需要输入锁屏密码解除全盘加密
5. 刷入系统、谷歌服务
由于LOS官网已经不提供Sailfish的15.1版本了,我找了好久找到了时光倒流机保存的快照,可以下载20190221版本。LOS不会自带谷歌服务,如Google Play等,需要另外安装,我这里选择OpenGapps,版本选择ARM64-8.1-nano。

Sailfish为ARM64架构,LOS 15.1为基于安卓8.1系统开发的,所以前两个必须这样选择,最后的nano可以自己修改,具体每个版本的差异见下图或看其Github介绍[3]



系统下载地址:https://web.archive.org/web/20190224153128/https://download.lineageos.org/sailfish

谷歌服务(OpenGapps)下载地址:https://opengapps.org/

官方教程:https://web.archive.org/web/20190224175720/https://wiki.lineageos.org/devices/sailfish/install

1.下载完刷机包,最好校验下包的完整性,cmd 输入
  1. certutil -hashfile <filename>.zip SHA256
复制代码
与官网是否一致

2.进入Recovery Mode,即TWRP,点击Reboot,查看当前分区
  1. current slot
复制代码
  • 坑点:有时候会自动切换到另外的分区,导致刷入错误,所以每次进TWRP都看下当前分区,不对则切换



3.返回首页进行三清:点击Wipe→Advanced Wipe,勾选data、cache、Dalvik Cache,下方滑动Swipe to Wipe开始三清
  • 或点击Wipe→Format Data,输入yes,这会格式化所有的文件,并且解除密码

4.继续返回首页(不要重启),点击Advanced(高级)→ADB Sideload  手机会等待电脑端刷入包



5.cmd 中输入
  1. adb sideload <filename>.zip
复制代码
将系统包刷入






6.返回TWRP首页(不要重启),点击Reboot→Power off关机
  • 重要:刷入系统后不能开机,必须重复前面的步骤刷入谷歌服务后再开机,否则谷歌服务可能会崩溃

7.重复前面的两大步骤,临时刷入TWRP。再重复上面的步骤,刷入谷歌服务


6. 永久刷入TWRP、Root
LOS官方Root下载地址:https://web.archive.org/web/20190223223558/https://download.lineageos.org/extras




Magisk(Root)下载地址:https://github.com/topjohnwu/Magisk/releases

1.下载对应手机的TWRP安装文件 zip,按照前面的步骤,临时刷入TWRP,ADB Sideload将TWRP永久刷入

2.点击Reboot System看是否能重启系统。如果循环进入TWRP,参考下方
  • 点击Advanced→Fix Recovery Bootloop 滑动Swipe to Confirm 修复TWRP循环,重启即可



3.进入TWRP,重复上面第1步,将下载的Root工具 zip 通过adb sideload刷入即可
  • 注意:若提示
    1. cannot mount /system
    复制代码
    表示无法挂载system分区,点击Mount→勾选system,再重新刷入即可



注意:LOS官方Root工具和Magisk只能选择一样,另一样会被覆盖。据大佬所说,Magisk为假root。不过它功能较多,且LOS后续版本都没有官方Root工具了,因此我最终也选择了Magisk。你们可以自行选择,都刷下体验看看。

4.若为LOS官方root:进入开发者选项,打开root开关,选择'应用与ADB'
  • 没有刷入官方root时,可能也有root开关,但只有两个选项:禁用、仅ADB
  • 刷入官方root后,有4个选项:禁用、仅应用、仅ADB、应用与ADB

5.若为Magisk:重启后会有Magisk Manager软件,打开后显示'XXX 已安装'表示成功





7. 其它
安装Frida与Objection工具我这里就不具体讲了,直接参考r0ysue大佬Github[4]即可。我是通过在WIN10系统安装子系统Ubuntu,操作更方便,怎么安装可以自行搜索。

以下为本次刷机用到的所有包,建议先全部下载下来再操作,完!



欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!





参考资料[1]
名词解释: https://mp.weixin.qq.com/s/31-w6Hjl1ZvBc2htQfujoQ
[2]
设备信息: https://wiki.lineageos.org/devices/
[3]
OpenGapps各版本差异: https://github.com/opengapps/opengapps/wiki
[4]
r0ysue Github: https://github.com/r0ysue/AndroidSecurityStudy



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
回复

使用道具 举报