本内容来源于@什么值得买SMZDM.COM|作者:青雪唐元

创作立场声明:本文由于自身的局限性,可能有些内容不够准确,还望大家多多指正,期待深入探讨。

2018年我第一次接触刷机,初出茅庐的我为我的小米平板1刷上了系统LineageOS15.1,并写下了使用Mac为小米平板刷lineageOS。彼时自己对于刷机这个过程颇为生疏,只是小心翼翼的按照教程一步一步操作,生怕有一丝一毫不一致的地方,而其背后每一步骤的原因却无从得知,故有意撰此文。一方面让准备刷机的人多一个教程可以参考,另一方面藉此机会充实自己,了解一些Android开发知识,也算是满足自己的好奇心罢。

出于知识内容所限,本文仅讨论线刷模式,不讨论卡刷模式。

配置AndroidSDK的环境变量

SDK的全称叫做软件开发工具包(SoftwareDevelopmentKit),AndroidSDK里面包含安卓软件的开发工具,这些开发工具均在SDK的安装目录下,拥有它们我们才能对Android中的软件进行安装、卸载等相关操作。当我们在终端输入指令要求启动某个工具或应用程序时,系统会优先在当下的目录中进行查找,如果没有则会在系统Path指定的路径下进行查找;而我们配置环境变量的这个过程,就是把SDK的安装目录记录在系统Path的指定路径中,让我们在终端能够直接使用SDK中的开发工具。该过程也叫做配置ADB(AndroidDebugBridge)环境变量。

Mac系统下的环境变量配置

参见:使用Mac为Android手机刷原生系统

Windows系统下的环境变量配置

Windows系统下由于其系统特点,目前(我知道的)有三种方案,将在以下展开,三种方法均适用于Windows10系统,其他系统可能有些出入,读者可部分参考。

方案一:配置环境变量

参见:win10如何配置Android开发环境变量

该方案和Mac系统下环境变量配置的原理一致,都是对系统进行操作。虽看起来步骤多,好处就在于一劳永逸,一次配置「终身」受用,除非你重装了系统,个人优先推荐该方法。

方案二:快速安装与使用ADB

1将platform-tools数据包解压,进入解压后的文件夹,按住Shift键的同时在空白处单击鼠标右键,选择「在此处打开命令窗口」(在Win10创意者更新中被改为「在此处打开Powershell窗口」);2输入adbversion检测环境变量配置是否完成;这个方案相当偷懒,其实这个步骤并没有实现系统的环境变量配置,只是提供了一个临时的环境,但是无论如何这个方法是最方便的,而且对于新手而言非常友好。

方案三:直接访问SDK目录

1将platform-tools放在一个接近硬盘根目录如C:adb这样的地方便于访问,这时我们需要访问的目录为C:adbplatform-tools;2在运行命令窗口中输入cmd打开命令符窗口,并按下回车执行;3输入cdadbplatform-tools,并按下回车执行,进入目录;4输入adbversion检测环境变量配置是否完成。该方案和方案一比较像,都是偏向于临时解决环境配置问题,但是都没有实现系统的环境变量配置,因此每次使用时都要重新访问一次SDK的所在目录。

该方案看似简单、容易操作,但弊端明显,只有你在进入该目录的情况下,才符合「环境变量已配置」的条件,不建议没有代码基础的人操作。

解锁Bootloader

一般而言,每个Android设备都会有Fastboot/Bootloader模式,它是负责引导操作系统内核启动的引导程序,只有在该模式是无锁的情况下,我们才能自由的root我们的设备、自定义或安装一个更加好用的第三方ROM固件,否则很容易损伤设备。与封闭的iOS系统不同,Android系统是开源的,因而相应的各大厂商所开发的Fastboot/Bootloader模式也各有不同。尽管系统是开源的,但是各厂商为了对自己的设备有着更多的支配权,多数情况下都会对其Fastboot/Bootloader模式上锁。这就是为什么我们在刷机教程里经常看到「Bootloader解锁」这一步了。

Bootloader解锁通用步骤
  • 打开「开发者选项」,不同设备打开的方式不同,请读者根据自己设备机型自行百度一下;
  • 先后打开「USB调试」与「启用OEM解锁」(没有「启用OEM解锁」选项的设备则不用理会),该过程需要满足网络流(ke)畅(xue);
  • 进入Bootloader界面等候;
  • 打开Terminal/CMD,输入Bootloader解锁指令,并按下回车执行;如果你的设备为Android5.0及以下,则解锁指令为fastbootoemunlock;如果你的设备为Android6.0及以上,则解锁指令为fastbootflashingunlock;
  • 在设备端此时会弹出Bootloader解锁的确认界面,使用音量键移动关标选择确认,按下电源键开始解锁;
  • 解锁后设备会被清除数据并重新启动,待设备开机后检查「USB调试」选项;
  • 重新进入Bootloader界面等候;
  • 注意事项
  • 解锁Fastboot/Bootloader模式后,可能会使保修相关服务失效;
  • 解锁Bootloader的过程中,可能会还原设备一切资料,切记在此前做好资料备份工作;
  • 解锁Bootloader的过程中,有一定损坏设备的风险;
  • 该Bootloader解锁方式大体上对于Android设备通用,但是鉴于各厂商Android设备差异实在太大,建议如果有官方解锁通道就先去申请官方解锁,没有解锁通道再尝试该方法。当然对于从来没有放开Bootloader解锁权限的品牌(可自行百度),还是该放弃放弃吧。
  • 刷入第三方Recovery

    设备一般都会自带一个官方初始的一个Recovery,其作用主要用于恢复出厂设置与OTA安装/升级,但是由于官方Recovery不能识别第三方ROM,而第三方Recovery却可以,所以我们一般在刷机之前都会先刷入第三方Recovery。目前比较推荐的第三方Recovery是TWRP,该项目是一个社区开源项目,挂载在GitHub上。也许你会发现之前也有人推荐过CWM,很遗憾的是,该项目已于2014年停止了维护,如果你用的设备型号比较老的话,可能会用到它。

    刷入第三方Recovery的通用步骤
  • 准备好设备匹配的第三方Recovery版本,后缀为.img;
  • 重启手机至bootloader模式,电脑端运行Terminal/CMD;
  • 输入cd你的第三方Recovery文件路径,并按下回车执行,以此来定向第三方Recovery的文件位置,接着输入fastbootbootxxx.img(xxx为具体的文件名),并按下回车执行,此时Recovery已经刷入,手机会重启至Recovery相应界面。
  • 注意事项

    该过程中需要定向Recovery的位置,故而如果你在Windows系统下的环境变量配置时用的是方案三,在这里会比较麻烦,解决方法是把你的第三方Recovery文件放在platform-tools目录下,让两个目录一致。

    类原生Android系统ROM推荐 LineageOS

    LineageOS是Android的最大售后市场分销,以前称为CyanogenMod。2016年开源项目CyanogenMod被宣布停止,被复刻为LineageOS,由原团队CyanogenMod继续开发,源代码于GitHub可用。

    ResurrectionRemixOS

    ResurrectionRemixOS基于LineageOS15.1,包含大量附加功能和定制选项。因为它提供了许多功能,所以成为了Android设备最受欢迎的自定义ROM,源代码于GitHub可用.

    crDroid

    crDroid基于LineageOS,在此基础上附加其他性能调整和额外功能,源代码于GitHub可用。

    crDroid

    PixelExperience

    PixelExperience基于Android开源项目(AOSP)与CodeAurora项目(CAF)开发,由于PixelExperience中包含谷歌全家桶,故而相比与其他ROM包来说要大些,源代码于GitHub中可用。

    ParanoidAndroid

    ParanoidAndroid的制作团队就是OxygenOS的制作团队,该制作团队的核心成员被Oneplus聘请,为Oneplus做ROM开发,源代码于GitHub中可用。

    AOSPEXTENDEDROM

    AOSPEXTENDEDROM基于Android开源项目(AOSP)开发,它提供了各种自定义特性和底层主题引擎,源代码于GitHub中可用。

    ResurrectionRemixOS

    XOSP

    XOSP是基于CyanogenMod13的ROM,混合了很多Xperia的特性,带来不一样的感受。因为是Xperia+AOSP的混合体,因此命名为XOSP。

    魔趣ROM

    魔趣ROM基于Android开源项目(AOSP)开发,Slogan是「可能是中国最好的安卓开源系统」,源代码于GitHub可用。

    总结

    这些是我这些天各种查资料总结到的,由于个人能力与知识水平所限,会存在一些不足之处。如前辈们发现文中有错漏的问题,诚求各位不吝赐教。

    附录 常用ADB命令 常用Fastboot命令