在构建aosp时,我尝试将一个文件夹从"system/app/“文件夹复制到"/data/data//”文件夹。
使用android-marshmallow-6.0.1的源代码
com.customapp W/System.err:原因: android.system.ErrnoException: open failed: ENOENT (无此文件或目录) 01-01 00:07:13.796 10269-10269/custompackagename.com.customapp W/System.err: at libcore.io.Posix.open(原生方法) 01-01 00:07:13.796 13.796-13.797/custompackagename.com.customapp W/System.err: at ENOENT 01-01 00:07:13.79710269-10269/custompackagename.com.customapp W/System.err: at java.io.File.createNewFile(File.java:932) 01-01 00:07: 10269-10269/custompackagename.com.customapp W/System.err:... 16 more 01-01 00:07: 10269-10269/custompackagename.com.customapp D/ copyAsset app_g3_models/en-IN/wordlist.syms 01-01 00:07:13.797 10269-10269/custompackagename.com.customapp D/CustomApp: copyAsset /data/data/com.google.android.googlequicksearchbox/app_g3_models/en-IN/wordlist.syms 01-01 00:07 : 10269-10269/custompackagename.com.customapp W/System.err: java.io.IOException:打开失败: ENOENT (无此文件或目录) 01-01 00:07:13.798 10269-13.798/custompackagename.com.customapp W/System.err: at java.io.File.createNewFile(File.java:939) 01-01 00:07:10269-10269/custompackagename.com.customapp W/System.err: at custompackagename.com.customapp.CustomApp.copyAsset(CustomApp.java:139) 01-01 00:07: 10269-10269/custompackagename.com.customapp W/System.err: at custompackagename.com.customapp.CustomApp.copyAssetFolder(CustomApp.java:116) 01-01 00:07:13.798 10269-10269/custompackagename.com.customapp W/System.err: at custompackagename.com.customapp.CustomApp.copyAssetFolder(CustomApp.java:120) 01-01 00:07:13.798 10269-10269/custompackagename.com.customapp W/System.err: at custompackagename.com.customapp.CustomApp.onCreate(CustomApp.java:81) 01-01 00:07:13.798 10269-10269/custompackagename.com.customapp W/System.err:
发布于 2018-03-08 22:44:08
您可以在任何Android.mk / Makefile中使用:$(hide) cp -R system/app/folder /data/data/来完成此操作。看一看buid/core/Makefile
或查看:PRODUCT_COPY_FILES
发布于 2018-03-10 00:15:30
您确定可以在构建时将任何内容放到/data/data文件夹中吗?文件夹/data/data/<package-name>是在运行时创建的,如果您将任何内容放在其中,它将在出厂重置时被清除。
您可能需要(如果确实需要)在启动时将数据放在init.rc脚本中。查看AOSP如何做到这一点:https://github.com/LineageOS/android_device_xiaomi_mido/tree/cm-14.1/rootdir
您可以创建自己的.sh脚本并将其作为服务启动(或修改现有脚本以进行测试,例如上面链接中的init.qcom.sh ),然后复制您的数据。
您可以在脚本中检查您的应用程序已安装,如果没有,则通过pm命令安装它,然后从system分区上的文件夹复制其data文件夹中的数据。
因此,在AOSP构建时,你应该关心系统分区上的文件夹,即通过device.mk文件中的PRODUCT_COPY_FILES变量将数据放在那里。
https://stackoverflow.com/questions/49150408
复制相似问题