制作OTA差分包的时候,发现差分包的文件并没有相应的权限。这里的差分包是通过在out/target/product/xxx/system/创建一个文件夹,然后往里面放几个文件(该文件的有可执行权限),然后制作差分包。可是,生成的差分包中对应文件并没有可执行权限。于是,查看第二个zip包中,发现该zip包中也没有可执行权限,那就怪不得差分包中该文件没有可执行权限了。找到system/core/include/private/android_filesystem_config.h这个文件,如果找不到这个文件,可使用locate android_filesystem_config.h进行查找。
在数组android_dirs(目录)中添加目录,如{ 00755, AID_ROOT, AID_SHELL, 0, "system/tool" },
在数组android_files(文件)中添加文件,如 { 00755, AID_ROOT, AID_SHELL, 0, "system/tool/*" },
android_filesystem_config.h这个头文件中以硬编码的方式设定了system目录下各文件的权限、属主。执行完配置后会将配置后的信息以文本方式输出 到META/filesystem_config.txt中(该文件在out/target/product/xxx/obj/PACKAGING/target_files_intermediates/xxx-target_files-eng.xxx/META下)。修改成功后,差分包的文件属性也就出来了。