微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何避免data分区的.keep_list和.restore_list被意外损坏导致special fa...

如何避免data分区的.keep_list和.restore_list被意外损坏导致special fa...

时间:10-02 整理:3721RD 点击:
[Recovery]如何避免data分区的.keep_list和.restore_list被意外损坏导致special factory reset不成功

[Description]
《android SD upgrade application note》中描述,在mtk_SPECIAL_FACTORY_RESET=yes的前提下,可以通过/data/app/.keep_list和/data/app/.restore_list的组合配置来keep或者restore需要保留的apk。但是,在使用过程中,userdata区的数据难免会有被意外损坏的可能那么,如何来避免这个问题呢?
[Solution]
1. .restore_list
由于ICS引入"phone encrypt"的function,userdata可能会被加密,导致recovery mode下无法访问到userdata。因此,可以将.restore_list从/data/app/移至/system/app/。
ICS需要打patch ALPS00289146。
2. .keep_list
首先,对引入"phone encrypt"这个function的ICS版本来说,如userdata被加密,.keep_list将不生效,/data/app/下所有apk会被keep住。
那.restore_list的方法适用于.keep_list吗?回答是:NO。
对.keep_list来说,不能直接将.keep_list移至/system/app/下,移了之后factory reset时会直接判断到.keep_list不存在而keep /data/app/下所有apk。
对此,有两个方法可供参考:
a. 已经考虑phone encrypt的情况下,还是需要使用.keep_list——通过.restore_list来恢复.keep_list。放.keep_list在/system/appbackup/下,并在.restore_list中添加/system/appbackup/.keep_list。做法类似于需要借助于.restore_list进行restore的apk。
*Note:此solution需要打patch ALPS00442469。
b. 为了避免/data/app/.keep_list破坏导致的keep all apk——可以修改recovery.cpp里面的代码。在special_factory_reset之前调用erase_volume("/data")。
如需要在wipe_data的时候,都不保留/data/app/下的apk,就可以在所有special_factory_reset之前都调用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top