构建 AOSP:如何在 SD 卡上包含文件?

Posted

技术标签:

【中文标题】构建 AOSP:如何在 SD 卡上包含文件?【英文标题】:Build AOSP: How to include files on SD card? 【发布时间】:2014-02-24 04:04:37 【问题描述】:

我正在为设备构建 4.4 并添加一些特定于供应商的附加功能 - 一些 APK 和共享存储上的一些文件。

我在源代码树中添加了一个供应商模块来复制带有PLATFORM_COPY_FILES 任务的APK,但它看起来只适用于系统映像中的文件。

这在现有的 android 构建系统中是否可行?

【问题讨论】:

所以我还没有找到通过构建系统执行此操作的任何方法,但是您可以对其进行破解,尽管我不确定具体如何。您可以制作一个响应 onBoot 广播的 APK,它将一些资产写入您选择的目录。我知道我的构建系统中的其他一些 APK 正在做类似的一些事情,但您必须进行试验才能使其正常工作。 @AndrewT。谢谢,这听起来像它会工作。下一步:弄清楚如何让 AOSP 构建该 APK... 这看起来很有趣,所以我正在开发一个应用程序来做到这一点。完成后,我会发布一个指向它的 git repo 的链接。一般来说,能够将文件加载到 sdcard 似乎很有用。 您的问题似乎并不在于构建系统,而在于您用于在设备上安装的 deploy 系统。预加载存储需要一个额外的步骤。 【参考方案1】:

因此,由于似乎无法通过 AOSP 执行此操作,因此您需要使用在启动时添加文件的应用程序。我创建了一个包,您可以在这里找到:

https://github.com/Paradopolis/AssetCopier

我刚刚整理了一下,所以可能会有一些错误,如果你发现他们随时发送拉取请求或提出问题,我会看看。不过代码并不复杂。

【讨论】:

这似乎非常浪费空间 - 您仍然会在设备上的该 APK 中保留(可能是压缩的)副本。 @ChrisStratton 当然是,但我不确定如何让它变得更好。这些文件必须包含在 apk 中,并且多个用户可能需要这些文件。如果您在完成工作后删除 apk,新用户将无法获得这些文件。不幸的是,android 似乎没有提供太多替代方案。 我认为问题在于 假设 这必须由 apk 完成。尽管从某些设备外源提取数据的 apk 可能是一种选择。但我认为真正的解决方案取决于了解工厂生产中使用的设备成像方法。 @ChrisStratton 根据我对 AOSP 的了解,必须将文件包含在用户目录中。如果以后可以包含它,则该文件仍需要存储在系统目录中的某个位置,以便在创建第二个用户时(即在平板电脑上),然后将文件添加到该用户。如果您知道有另一种方法可以做到这一点,我很想听听,将其发布为答案。目前,这似乎是任何人都可以提供的唯一答案,所以这是我们拥有的最好的答案。 跨用户复制预安装的内容听起来不太理想,除非他们希望删除这些内容。默认情况下,Android 是否在外部存储上提供任何东西?也许将信息放在那里的想法是问题所在。另请记住,系统供应商并不像第 3 方开发人员那样仅限于 apk。

以上是关于构建 AOSP:如何在 SD 卡上包含文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Android API 24+ 在 SD 卡上写入文件

AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?

如何将 SD 卡上的 3gp 文件上传到服务器?

在 Nexus S 的 SD 卡上保存问题

删除 SD 卡上的文件夹

如何在虚拟机Ubuntu下显示SD卡,想要把u_boot烧写到sd卡上