Hotaru's Notebook

OnePlus 3T 从解锁 BootLoader 到 Xposed

Preface

原来的手机(HTC 802t)可能是到寿命了吧,开始时不时的出现 前台服务(Foreground Service)被系统Kill掉、手离开触屏后触点依然存在 的问题,再加上硬件老化,手机运行速度已经越来越慢了。于是,我就买了个新手机:OnePlus 3T。这款手机在欧美评价不错,XDA上也已经有不少 root / xposed 的帖子了。这篇blog就用来记录一些操作过程包括:

注: 新手机开机后会要求选择系统语言,由于我选择的是英文,所以下面的操作步骤中 手机里显示英文的地方仍然以英文记录下来。
免责声明:作者不对本文内容的准确性做任何保证,读者因以任何方式使用本文内容导致的一切后果均由读者自行承担。

准备工作

先不要急着开机,做好准备工作再说。

  1. 下载并安装好 Android SDK,在 Android SDK Manager 内安装 platform-tools(platform-tools 里面提供了后续步骤所需的 fastboot 命令行工具),可选安装 tools(里面的 adb 用来安装 apk / 与手机传送文件)。

  2. TWRP Recovery https://dl.twrp.me/oneplus3t/ Direct link twrp-3.0.3-0-oneplus3t.img

  3. root 卡刷包 / root 权限管理软件

    • phh’s Superuser 开源,刷这个包时候会修改手机内的 boot.img目前不兼容 Lucky Patcher 之类的东西
      下载 卡刷包
      下载 Superuser 管理软件
    • Chainfire’s SuperSU 闭源,目前最傻瓜化的 Superuser 解决方案。
  4. OpenGApps 卡刷包 打开 OpenGApps.org,按照下面的参数进行选择后再下载:

    参数
    Platform ARM64
    Android 6.0
    Variant micro

    micro 将包含以下App:

    • Google Calendar (将替换掉原厂ROM自带的程序)
    • Google Now Launcher
    • Google Package Installer
    • Google Play services (OnePlus 3T 的 HydrogenOS 自带 Play Services,也会被替换掉)
    • Google Search
    • Google Text-to-Speech
    • Gmail
    • Hotword
  5. 为 Xposed 的安装准备如下文件:

  6. My Android Tools 因为 HydrogenOS 不允许禁用 手动安装/部分系统自带 的App,所以需要借助它来完成。注:该App需要root权限

开机

开机后会要求用户进行一些设定,能跳过的就跳过,包括 连接WiFi、指纹解锁。然后禁用手机内置的百度输入法,按照如下步骤操作:

  1. 打开 Settings -> Language & input
  2. 点击 Current Keyboard 后选择 English (US) Android Keyboard (AOSP)
  3. Input Method 里找到 百度输入法 然后点击它,将会弹出百度输入法的预设定界面
  4. 触摸 Home 键,这会使百度输入法会在通知栏发出一个通知
  5. 展开通知栏,长按百度输入法的通知,然后点击右侧的 i 图标,这将打开对百度输入法的通知进行设定的界面
  6. 点击百度输入法图标右侧的 i 图标,这会打开百度输入法的 App info 界面
  7. 点击 Disable 即可

解锁 BootLoader

警告:解锁BootLoader将会清除手机上的所有用户数据!

  1. 打开 Settings -> About phone,滚动到最下面 找到 Build number
  2. 多次点击 Build number 直至出现 Toast 内容为 No need, you are already a developer. 后停止点击。
  3. 回到 Settings,滚动到最下面,点击 Developer options
  4. 找到 OEM Unlocking 后点击它,然后会提示用户是否要这么做,确认即可
  5. 手机关机,然后 同时按住 VolumeUp + Power 键,这将会进入 fastboot 模式,然后松开 VolumeUpPower
  6. 使用 OnePlus 3T 自带的数据线连接将手机和电脑连接上
  7. 进入目录 Android SDK 文件夹/platform-tools/,找到 fastboot 文件(Windows 则为 fastboot.exe),执行如下命令,这将会解锁手机并清除手机上的所有用户数据
    fastboot oem unlock
    
    然后在手机上按照手机上的提示进行解锁。

至此手机已经解锁完毕,手机将会重启至 Android 系统。

安装 TWRP / phh’s Superuser / Google 全家桶(OpenGApps)

准备工作

将下面列表里的卡刷包传送至手机,既可以以MTP的形式传输到手机,也可以用 adb 命令行工具来传输。 首先,与读者进行文件名的协商,协商好的文件名将在后续步骤中被使用。如下:

东西 卡刷包文件名
TWRP Recovery (这个不需要传到手机里) twrp.img
phh’s Superuser superuser.zip
Open GApps opengapps.zip

安装 TWRP

  1. 将前面准备的 twrp.img 文件放到和 fastboot 同级目录下,然后执行下面的命令将 twrp.img 刷入手机 并 引导手机启动至 TWRP Recovery(Linux 需要root权限来执行):
    fastboot flash recovery twrp.img
    fastboot boot twrp.img
    
  2. 待 TWRP 启动后,会询问 Keep System Read only?,直接滑动下面的 Swipe to Allow Modifications 即可。 注:xda论坛上的教程贴里提到了 ‘Allow Modifications 将会触发 dm-verity,会导致手机无法启动到Android系统’。我右滑 Swipe to Allow Modifications 后直接重启手机到Android系统,并没有出现上述问题。

卡刷 phh’s Superuser / Google 全家桶(OpenGApps)

  1. 现在看到的界面应该是 TWRP 的主界面
  2. 点击 Install ,在文件列表寻找前面准备工作里传输到手机里的 superuser.zip,并点击 superuser.zip
  3. 现在 TWRP 会询问用户是否刷入这个zip包,先不急
  4. 点击 Add more Zips,然后找到并点击前面准备工作里传输到手机里的 opengapps.zip
  5. 向右滑动 Swipe to confirm Flash,这将会把 superuser.zipopengapps.zip 刷入手机
  6. 操作完成后 点击屏幕上的 Home 键回到主界面
  7. 点击 Wipe,然后点击 Advanced Wipe
  8. 只勾选 Dalvik / ART CacheCache
  9. 向右滑动 Swipe to Wipe,这将清空 ART Cache 和 Cache,确保 Google 全家桶能正常工作 下面的操作将 “禁用” SetupWizard.apk,以免重启后出现不显示桌面的问题。
  10. 操作完成后 点击屏幕上的 Home 键回到主界面
  11. 点击 Mount,勾选 System,然后点击屏幕上的 Home 回到主界面
  12. 依次点击 Advanced -> File Manager,然后定位到 /system/priv-app/SetupWizard/
  13. 点击列表里的 SetupWizard.apk,然后点击 Rename File,设定新的文件名为 SetupWizard.apk.bak,点击屏幕键盘上的对号按钮,向右滑动 Swipe to Confirm,至此 文件名修改完成。
  14. 上面的操作完成后,点击屏幕上的 Home 键回到主界面
  15. 依次点击 Reboot -> System,稍后 手机将重启并进入Android系统

安装 phh’s Superuser 管理软件

把 phh’s Superuser 管理软件的apk传输到手机,然后使用系统自带的文件管理器安装即可。 如果提示无法安装 需要启用 Unknown sources,请到 Settings -> Security & fingerprint,点击 Unknown sources,然后按照提示操作即可。

配置 Google 全家桶(OpenGApps)

由于系统自带的 Google Play Services 默认情况下是禁用状态,需要使用 My Android Tools 来启用它。

  1. My Android Tools 的 apk 传输到手机里,并使用自带的文件管理找到并安装它。
  2. 打开 My Android Tools,点击 Apps(如果没有,则从屏幕左边向右滑即可),选择 Disabled 选项卡
  3. 点击 Google Play services,在弹出的窗口中点击 Enable,这时会弹出root权限申请界面,点击 Allow 即可。
  4. 向上面第3步那样,对其余的以 Google 字样开头的列表项执行相同的操作
  5. 回到桌面,启动 Play Store,然后按照提示登录自己的Google帐号

安装 Xposed

本段内容将会用到 xposed 的一些文件,现与读者为文件名做如下约定:

原文件名 本段落中使用的文件名
xposed-v<数字>-sdk23-arm64.zip xposed-install.zip
xposed-uninstaller-<数字>-arm64.zip xposed-uninstall.zip
XposedInstaller_<版本号>.apk xposed.apk

请读者确保下载的文件均为最新版,下载到的文件与上面的原文件名里的 这种字体之外部分的文件名 相同即可。

  1. xposed.apk 传输到手机里并安装它,不需要启动它
  2. xposed-install.zipxposed-uninstall.zip 传输到手机备用。
  3. 按住 VolumeUp + Power 键重启手机到 fastboot 模式
  4. 像之前 卡刷 phh’s Superuser / Google 全家桶(OpenGApps) 一样,把 xposed-install.zip 刷入手机
  5. 重启手机到Android系统
  6. 打开App Xposed Installer,不出问题的话,界面上应该显示 Xposed Framework version xx is active.

若没能进入到Android系统,或者说 Android启动动画一直循环,请进入 Recovery 并刷入 xposed-uninstall.zip 来卸载 xposed。

禁用 dm-verity

有以下两种情况需要禁用 dm-verity:

  1. 修改系统分区的文件并重启后 卡在1+图标的界面,手机也不发热,有可能就是触发了 dm-verity
  2. Root Explorer 无法修改 /system 分区的文件。

解决方法也很简单:到 no-verity-opt-encrypt 下载最新版的zip包,然后重启手机到 recovery,然后把这个包刷进去,然后重启手机即可。

修改系统DPI值

修改DPI值目的是为了不改变屏幕大小的情况下,在屏幕内放下更多的内容。也就意味着:屏幕上显示的内容所占屏幕的比例会更小,说白话就是字和图片之类的会变小些。
有两种方法实现这个功能:

  1. 执行命令:
    su
    wm density <dpi>
    
    虽然重启手机后就能生效,但会导致一些App在显示一些图片时候出现大小不对 / 错位之类的问题。
  2. 修改文件 /system/build.prop。同样也有缺点:需要清空 ART Cache / Cache / Data 再进进入系统 才能避免1里面提到的问题。

综上,为了尽可能完美的修改DPI值,我选择第二种方法。具体做法如下:

  1. Root Explorer 打开并编辑 /system/build.prop,在文件末尾加上下面这行文字:
    qemu.sf.lcd_density=<dpi>
    
    比如我写的是 qemu.sf.lcd_density=440,至于这个值多大,看个人喜好而定。
    可以用上面提到的执行命令的方式修改DPI,然后重启手机看下效果。如果觉得看着不错 就把数值写到 build.prop 里。
  2. 重启手机到 recovery,wipe Dalvik / ART Cache DataCache,然后重启手机即可。

注:如果无法在 Root Explorer 里修改的话 需要刷个包,请移步 这里

Tips & Tricks

  1. 长按电源键 8 秒将强制关机。
  2. xda论坛上也有说 长按电源键约 40 秒来强制关机。
  3. BootLoader 解锁后,开机时候可以在5秒钟内按音量键来进入 fastboot / recovery 之类的。
  4. 双击电源键将打开照相机,按任意音量键拍照。
  5. 屏幕截图:同时按下 Power+VolumeDown 一小会儿。

更新历史

04 Jan 2017: 首次发布
14 Jan 2017:

  1. 添加:禁用dm-verity的方法。
  2. 添加:修改系统dpi值的办法。
  3. 去除:准备工作里提到了adb却没有使用它,于是去掉有关adb的废话。
  4. 添加:Tips & Tricks: 第5条 屏幕截图

References

  1. [W.I.P][INDEX]OnePlus 3T Resource - xda-developers
  2. TWRP Recovery for OnePlus 3T
  3. phh’s SuperUser / OpenSource SELinux-capable SuperUser - xda-developers
  4. Open GApps - opengapps.org
  5. Open GApps on GitHub
  6. Open Gapps Package Comparision
  7. Open GApps Micro Package Description
  8. Solution for “Unfortunately, setup wizard has stopped working” - Open GApps FAQ - Open GApps Wiki
  9. My Android Tools on Google Play
  10. My Android Tools on apkpure.com
  11. Verified Boot(dm-verity) - source.android.com
  12. no-verity-opt-encrypt zip download
  13. [Recovery] Official TWRP for the OnePlus 3T - xda-developers
  14. [GUIDE] How to install Xposed on OxygenOS 3.5.3 w/TL;DR - xda-developers

#OnePlus #Android #BootLoader #Xposed #TWRP Recovery #OpenGApps