- recovery请刷TWRP,否则安装GApps可能存在问题
-
确保计算机安装了
adb
,设置介绍可以参考这里 -
在设备上激活USB debugging
本步骤每台设备只需要运行一次
警告!
:解锁bootloader将删除
设备上所有数据。处理前请确保已经备份设备上数据。
- 通过USB连接设备和PC
- 在主机上执行如下命令:
adb reboot bootloader
也可以通过按键组合启动进入fastboot
模式:首先关闭手机,然后同时按住Volume Down + Volume Up
(即同时按住音量增大和减小键),然后按下电源键,直到启动菜单出现。
注意:首次操作需要手机上授权
- 当手机进入fastboot模式后,在主机端通过以下命令验证:
fastboot devices
- 输入以下命令解锁bootloader
fastboot oem unlock
只有
oem unlock
之后才能够安装自定义编译的非官方操作系统
-
如果设备没有自动重启,则手工重启。重启以后手机就已经是unlock了。
-
当手机重启完毕后,你需要重新激活USB debug
- 下载一个定制recovery,例如可以下载TWRP,例如
twrp-x.x.x-x-hammerhead.img
虽然构建hammerhead(Nexus 5)的LineageOS ROM中构建了
recover.img
,并且也能够在这个recover.img
支持下完成LineageOS的刷机。但是发现对GApps支持不佳,最后还是重新刷了标准的TWRP Recovery
-
通过USB连接手机和主机
-
在主机的终端输入以下命令:
adb reboot bootloader
- 将recovery刷入手机设备
fastboot flash recovery recovery.img
- 现在再次重启进入recovery来验证这个安装:
首先关闭手机,然后同时按住Volume Down + Volume Up
(即同时按住音量增大和减小键),然后按下电源键,直到启动菜单出现。使用音量键导航,并通过电源键选择"RECOVERY Mode"
- 下载LineageOS安装包,或者和我一样自己构建hammerhead(Nexus 5)的LineageOS ROM
- 可选下载第三方英哟年程序包,例如Google Apps
Google Apps 可以选择安装Nano或者Pico - 出于最小化安装并且很多Google服务在墙内无法使用,所以我选择安装Pico包。
- 将LineageOS
.zip
包和需要安装的第三方包推送到根目录下的/sdcard
目录
adb push filename.zip /sdcard/
实践:
adb push lineage-14.1-20171201_032348-UNOFFICIAL-hammerhead.zip /sdcard/
推荐使用以上方法 - 如果不需要保留设备数据,可以通过TWRP将设备存储和缓存中所有数据清理掉。然后在recovery模式下,使用上述命令推送image之后,再推送Open GApps。两者都通过TWRP的install完成安装就可以获得一个完全干净的系统。
这里可能出现一个报错(原因未知,重新刷了TWRP,没有再遇到过,似乎和自己编译的recovery.img有关)
adb: error: connect failed: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
解决方法是将~/.android/adbkey.pub
存放到手机设备的/data/misc/adb/adb_keys
(或者相反),方法可以通过USB,e-mail,或者临时文件上传服务。
首先将手机中设备密钥下载
adb pull /data/misc/adb/adb_keys
然后将adbkey.pub
内容复制到adb_keys
再上传回手机
cat ~/.android/adbkey.pub >> ~/adb_keys
adb push ~/adb_keys /data/misc/adb/adb_keys
使用
sideload
方式并不推荐,曾将尝试过在Android 6.0.1的手机上使用,切换到recovery时候,采用sideload
提示:
connecting...
falling back to older sideload method...
error: no devices/emulators found
此时采用adb push lineage-14.1-20171201_032348-UNOFFICIAL-hammerhead.zip /sdcard/
则可以恢复
-
启动手机到Recovery模式
-
使用菜单擦除cache,system,然后又选择了factory reset - 实际上把整个系统完全擦除干净了(也导致无法从
/sdcard/
目录安装)
根据提示,有一个sideload方式
- 进入update系统菜单
Apply update > Apply from ADB
提示可以adb sideload
,所以在终端执行
adb sideload lineage-14.1-20171201_032348-UNOFFICIAL-hammerhead.zip
相当于完全重新刷新系统
参考opengapps FAQ - 官方仅支持TWRP Recovery,其他Recovery方式都不是officially supported的。看来,我前面采用自己编译的
recovery.img
确实存在冲突,所以还是回滚到最初步骤,重新安装一次TWRP Recovery和重新刷一次LineageOS。
由于使用apply update方法安装Google Apps失败,所以尝试sideload方法
adb sideload open_gapps-arm-7.1-pico-20171201.zip
但是提示错误信息:
Finding update package...
Opening update package...
Verifying update package...
Update package verification took 16.1 s (result 0).
Installing update...
E:Failed to find META-INF/com/android/metadata in update package.
...
Open GApps pico 7.1 - 20171201
- Mounting
- Gathering devices & ROM information
- Performing system space calculations
Insufficient storage space available in System partition. Your may want to use a smaller Open GApps package or consider removing some apps using gapps-config.
See:'/sideload/open_gapps_log.txt'
for complete details and information.
- Copying Log to /sideload
- NO changes were made to your device
Installer will now exit...
Error Code: 70
- Unmounting
E:Installation error in /sideload/package.zip
(Status 70)
Restarting adbd...
Installation aborted.
在Lineage OS的 About Phone > Build number
上连续点击7次,开启了developer模式。
然后在Developer options
中设置以下项目:
- Android debugging - 即开启ADB接口
- Debugging notify - 可选
然后在手机端确认信任主机连接。
之后,使用adb devices
就可以看到设备:
$ adb devices
List of devices attached
02211e9ec9623837 device
此时推送gapps就可以完成
adb push open_gapps-arm-7.1-pico-20171201.zip /sdcard/
但是,通过recovery模式安装这个zip包,依然不能成功。