OTA整包升级data分区文件系统修改不成功
1.问题描述:
data分区的文件系统是F2FS格式的,由于设备是不带电池,会经常有直接断电的场景,这样就有损坏文件系统的概率,改为ext4的格式就可以避免这个问题。目前修改了之后固件烧录升级时没问题的,但编译成ota的整包升级时候,发现升级过程是成功的(可以通过版本号判断),通过cat /proc/mounts查看发现data分区的文件系统没有更新过来,依然是F2FS格式的。
2.问题原因:文件系统格式修改的这部分,涉及到data分区,当编译的ota整包升级时候是不会清掉data分区数据,所以这块升级完成之后并没有被修改到。
3.解决方案:前面分析了原因,所以解决办法就是需要清掉data分区的数据才可以,最直接的就是升级完成之后恢复出厂设置。但这个实际使用场景太繁琐,不够人性化。需要编译的ota的升级包就能 实现这个格式化data分区的数据。
build/tools/releasetools/ota_from_target_files这个文件是是制作全包和差分包的主要工具,只需要把OPTIONS.wipe_user_data设为True,编译出来的ota包就会清掉data分区的数据。
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index d409d94..969c33b 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -150,7 +150,7 @@ OPTIONS.verify = False OPTIONS.require_verbatim = set() OPTIONS.prohibit_verbatim = set(("system/build.prop",)) OPTIONS.patch_threshold = 0.95 -OPTIONS.wipe_user_data = False +OPTIONS.wipe_user_data = True OPTIONS.omit_prereq = False OPTIONS.downgrade = False
升级完成后,再查看:
参考文章:https://blog.csdn.net/qq_27061049/article/details/107188831
https://blog.csdn.net/Xiaoma_Pedro/article/details/103919347