在aosp构建期间将文件夹复制到/ data / data / <package-name> /从system / app / <app>文件夹

时间:2018-03-07 11:06:51

标签: android build android-6.0-marshmallow android-source

我想在aosp的构建期间从“system / app /”文件夹中将文件夹复制到“/ data / data //”。

使用android-marshmallow-6.0.1的源代码

LOG: 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at android.app.ActivityThread.-wrap11(ActivityThread.java) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at android.os.Handler.dispatchMessage(Handler.java:102) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at android.os.Looper.loop(Looper.java:148) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at android.app.ActivityThread.main(ActivityThread.java:5422) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at java.lang.reflect.Method.invoke(Native Method) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 01-01 00:07:13.796 10269-10269 / custompackagename.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(Native Method) 01-01 00:07:13.796 10269-10269 / custompackagename.com.customapp W / System.err:at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) 01-01 00:07:13.797 10269-10269 / custompackagename.com.customapp W / System.err:at java.io.File.createNewFile(File.java:932) 01-01 00:07:13.797 10269-10269 / custompackagename.com.customapp W / System.err:... 16更多 01-01 00:07:13.797 10269-10269 / custompackagename.com.customapp D / CustomApp: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:13.798 10269-10269 / custompackagename.com.customapp W / System.err:java.io.IOException:open failed:ENOENT(没有这样的文件或目录) 01-01 00:07:13.798 10269-10269 / custompackagename.com.customapp W / System.err:at java.io.File.createNewFile(File.java:939) 01-01 00:07:13.798 10269-10269 / custompackagename.com.customapp W / System.err:at custompackagename.com.customapp.CustomApp.copyAsset(CustomApp.java:139) 01-01 00:07:13.798 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:

2 个答案:

答案 0 :(得分:0)

您可以使用$(hide) cp -R system/app/folder /data/data/ / Android.mk内的Makefile执行此操作。看看buid/core/Makefile

或检查:PRODUCT_COPY_FILES

答案 1 :(得分:0)

您确定在构建时向/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命令安装,然后从data分区的文件夹中复制system文件夹中的数据

因此,在AOSP构建时,您应该关心系统分区上的文件夹,即通过PRODUCT_COPY_FILES文件中的device.mk变量将数据放在那里。