IMEI missing after downgrade Samsung S4

最近手机耗电严重 (Samsung S4 I9502),充满后放一边不用,半天就电量告急了。恢复所有设置也不奏效,想降级到 Android Kitkat 试试。

从网上下载了 4.4.2 的官方五件套,然后按照网上的方法用 Odin 工具刷入。过程很顺利,重启后变成了 Kitkat 的风格,进入首次设置页面。但马上发现,右上角的信号位置,变成了 ⦸ 这样的符号。查看系统设置,或者拨号键盘输入 *#06#,发现 IMEI 丢失。

上网搜索,发现 Samsung 的机器有个叫 efs 的东西,其中保存了包括 IMEI 在内的一些信息。如果降级前没有备份的话,可能会丢失!绝望了好一阵儿,发现把 SIM 卡放到另一个卡槽里可以用,只不过另一个卡槽只支持 2G 网络。可是这让我越想越觉得奇怪,于是又下载了 5.0.1 的固件刷进去,发现 IMEI 回来了,这说明 efs 并没有丢失。马上 ROOT 之后备份 efs,继续折腾。

再次降级,依然没有信号。ROOT 后查看文件,发现 /efs 目录有个叫 .nv_data.bak 的文件,用这个文件替换这个目录下的 nv_data.bin 文件,然后删掉 nv_data.bin.md5 文件,重新手机,IMEI 恢复。

另外,如果只是把原有的 nv_data.bin 文件删掉,也能恢复信号,但是查看 IMEI,发现是一个不正确的 IMEI(一大串 0,后面是 0049)。