一次c6603刷lineage14.1+root+openapps+twrp的记录
@(抠鼻)因为需要测试点东西打算把手里的c6603刷到android7.1然而Xperia Z官方并没有支持7.1而且我也不喜欢用sony原厂定制的rom于是便选择了cm解散后重组lineageOS,之前已经知道了l36h有c6602和c6603两种机型2不支持4G而3支持(然而这两个机型我都有)两个机型rom通用别名叫yuga,然后google找了个刷机包刷完麻烦事来了.
开刷
在xda下了一个名称包含Official的rom刷上之后准备刷openapps,然后进入recovery发现原来的twrp被替换为一个不带名称的recovery,一开始想着能刷机就行,不管那么多,然后开刷openapps发现log被屏蔽了,进度条走到3分之1就停住了,然后按下关机键看到了error字样,开机后又发现sim卡不识别了,然后开机root发现android7.1通过软件root不了,google搜索后别人说可以通过recovery刷入root包,然后进recovery刷root包时出现了和刷openapps一样的状况,然后准备用刷机精灵刷一下低版本的包,然后发现刷机精灵一直停在刷机前准备状态,这时我开始慌了,然后准备进bootloader刷twrp然后再刷root包和openapps,进入bootloader之后提示failed remote not allowed查了下好像是bootloader锁了,无奈去官网重新生成了解锁码,然后重新解锁后发现刷入recovery还是同样的问题,一时就陷入了僵局,抬头一看时间,该睡觉了,于是准备第二天搞.
第二天开始继续想办法,再次进入recovery发现里面有一项通过adb安装包,然后插到pc上准备试试用adb刷一下,无奈还是一样的问题,log显示出来了,提示的是签名错误,然后google找了下lineageOS获取root的方法发现只有通过recovery刷root包,然后开始怀疑是不是rom有问题,然后去lineage官网找了rom包发现命名和之前下载的不一样,然后去xda页面发现刷的打着官方名义其实是个人做的包,当时怀疑recovery的'签名校验'和bootloader都是这个包做的手脚,于是准备使用flashtool强刷一次官方包,然后开始刷的时候发现flashtool一刷就提示错误,错误信息为null,换了usb接口也没用,又一次陷入了僵局.
各种尝试无效之后,感觉这手机是废了,然后又试了下刷机精灵直接刷lineageOS官方包,发现提示没有检测到sd卡,当时手机是在bootloader状态,然后重启手机到recovery状态又试了下,发现手机重启一次recovery变为刷机精灵的了,然后过了一会pc的刷机精灵显示正在传输rom,然后顺利刷了官方的lineageOS,万事大吉,准备刷入root包和openapps,然后进recovery发现又变成刷机前的那个recovery了,哎呀,好气啊,然后进入bootloader再刷一次twrp试试,发现还是和之前同样的错误.嗝~
解决
稍加思索后发现用刷机精灵刷机时进行了以下操作
- 刷机精灵将手机的recovery替换成它们的
- 刷机精灵向手机传输rom包
- 刷机精灵的recovery开始刷机
于是,先用刷机精灵刷执行刷机操作,在手机的recovery换为刷机精灵的recovery后拔掉数据线,这样留住刷机精灵的recovery用,然后我顺便刷了一下root包,然后重启发现无法进入系统,重启之后又进入刷机精灵的recovery了,然后感觉是刷机精灵的recovery
无法引导android7.1,然后试了下在刷机精灵recovery的状态下连接pc通过adb刷入twrp,刷的时候提示成功,但是实际recovery还是没有变,然后无奈用adb吧刷机包push到手机然后用刷机精灵的recovery刷了lineageOS然后进入系统后发现有root权限了,这时确定刷机精灵pc端刷机前会先清空手机里的文件然后再刷机,而直接手动操作recovery则不会,然后连接到pc用adb又刷了一次twrp,然后重启到recovery之后发现变为twrp了,然后接着刷入openapps,此时大功告成.
总结
上面都是废话,也有很多无用的操作,后来总结一下步骤如下
- 手机进入recovery模式连接pc
- 用刷机精灵刷机rom包随便选
- 留意手机,当变成刷机精灵的recovery之后断开与pc的连接
- 双清(此步骤是为了防止之前的rom残留文件造成的各种问题)
- 通过adb将刷机包,root包,openapps,twrp等需要的文件push到手机中
- 开始刷机,刷完之后不要重启,接着刷root包(其实这时候也可以直接刷openapps了)
- 然后重启正常开机
- 连接pc通过adb进入shell之后通过su获得root权限然后刷twrp
- 然后进入recovery刷openapps(第6步刷过的话这步可以忽略了)
- 完成
一些命令
adb sideload xxx.zip #adb刷机命令,只能在recovery使用,有些recovery(比如上面假lineageOS官方自带的那个)会拒绝这个命令
adb push xxx.img xxx.img #adb像手机推送文件,前面是本机文件位置后面是手机上的位置,路径需要决对路径而且附带文件名
adb shell #通过adb进入手机的shell
su #和linux一样,获取root权限,这是shell里用的
dd if=xxx.img of=/xxx/xxx #刷recovery用的前面是recovery文件,后面是设备recovery路径(每个手机路径不一样,需要自行想办法查找,twrp选完手机型号之后的页面有命令示例里面包含此路径),这命令和linux的dd一样
现在找不到l36h的包了(悲)
你好,看了刷机精灵能替换recovery后想到,其实你可以不用刷机精灵,直接在 fastboot模式用
adb boot ./twrp.img
来进入rec模式进行刷机(刷有root的包)
okey我是菜鸡,不知道有这种操作,所有的命令也是现查现用的.