1. 项目背景与需求分析
最近在RK3576 Android14平台上做项目时,遇到了一个很实际的需求:有些关键数据需要在恢复出厂设置后仍然保留。比如设备指纹信息、授权文件、或者一些特定的配置参数,这些数据一旦丢失就会导致设备无法正常使用。传统的做法是把这些数据放在/data分区,但恢复出厂设置时会清空整个/data分区,显然不行。
经过一番研究,我发现最好的解决方案是创建一个自定义分区,专门用来存放这些需要持久化的数据。在Android系统中,恢复出厂设置只会清除data和cache分区,其他分区比如system、vendor等都是安全的。所以只要我们把数据放在这些安全的分区,就能实现持久化存储。
我选择了创建一个名为vendor_private的分区,大小设置为256MB,采用ext4文件系统格式。这个分区在恢复出厂设置时不会被清除,而且应用层可以正常读写,完美满足需求。下面我就详细分享一下具体的实现步骤,包括分区规划、挂载配置、权限管理和数据预置的全过程。
2. 分区规划与parameter.txt配置
2.1 修改RebuildParameter.mk文件
首先要做的是在系统的分区表中添加我们的vendor_private分区。这个操作需要在device/rockchip/common/build/rockchip/RebuildParameter.mk文件中进行修改。
打开这个文件,找到定义partition_list的地方,添加一行定义vendor_private分区的代码。我设置了256MB的大小,这个大小可以根据实际需求调整,但建议不要太小,留一些扩展空间。
partition_list := $(partition_list),vendor_private:256M
这个修改的作用是将vendor_private分区添加到parameter.txt的CMDLINE参数中。parameter.txt是Rockchip平台非常重要的一个配置文件,它定义了整个系统的分区布局和启动参数。
2.2 parameter.txt的生成机制
可能有些同学不太了解parameter.txt的生成过程,这里简单说明一下。在编译过程中,系统会调用一个叫做parameter_tools的工具来生成parameter.txt文件。这个工具实际上是由device/rockchip/common/scripts/parameter_tools/parameter_generator.pyPython脚本编译生成的。
生成过程大致是这样的:工具会读取PRODUCT_PARAMETER_TEMPLATE模板文件,然后根据我们定义的partition_list和其他参数(如固件版本、设备型号等),最终生成完整的parameter.txt文件。这个文件会被打包进固件中,在设备启动时被loader读取。


1501

被折叠的 条评论
为什么被折叠?



