【问题标题】:How to create a system app for custom ROM如何为自定义 ROM 创建系统应用程序
【发布时间】:2020-08-17 15:01:49
【问题描述】:

我们有一个用于我们正在制造的设备的自定义 ROM,我想做的是制作我们自己的自定义设置应用程序来替换已经内置在 android 中的设置应用程序。

我真的找不到任何关于如何创建系统应用程序的文档。您似乎无法在 Android Studio 中创建它,我尝试在 AOSP 网站上查找,但没有找到与创建系统应用程序相关的任何内容。我确实找到的几件事是在这里您可以将android:sharedUserId="android.uid.system" 放入清单中,然后必须使用与 ROM 相同的密钥进行签名,但之后我找不到任何东西。

我要创建的设置应用需要访问 framework.jar 才能使用隐藏的框架 API。

有没有人有任何信息或知道我在哪里可以找到有关如何实际创建系统应用程序的信息?

【问题讨论】:

  • 我没有您需要的所有信息,但系统应用程序就像任何其他应用程序一样。唯一的区别是它将使用操作系统证书进行签名,因此您可以使用共享用户 ID。除此之外,您需要将您的 apk 放在特定的目的地,即 /system/app 或 /system/priv-app。一种方法是更改​​ AOSP 构建的 make 脚本,因此在编译过程中,ROM 会自动将 apk 复制到该路径并对其进行签名。大约 4 年前我这样做了,这是我现在能记得的唯一信息
  • 首先。您使用什么:mk、bp 或 graddle 文件?当您尝试构建系统应用程序时,您必须通过系统证书对其进行签名。之后,您将拥有系统应用程序并可以使用 android:sharedUserId="android.uid.system"
  • @AndreySamoilov Gradle 文件
  • @tyczj 所以,在这种情况下,您必须拥有平台证书并创建相应的任务。类似的东西:```signingConfigs { aerndappsigning { keyAlias 'androiddebugkey' keyPassword '123456' storeFile file('debug_platform_key/platform.jks') storePassword 'android' } }
  • @AndreySamoilov OP 可能有一个 AOSP 项目,因为他是 build rom,在这种情况下,android.mk 中的设置可以签署 apk,无需在 gradle/android studio 中签署它

标签: android android-source


【解决方案1】:

您可能想研究如何制作设备树覆盖 (dto)。基本上它是您的代码,将基本代码重新格式化为您想要的。 https://source.android.com/devices/architecture/dto?hl=en

【讨论】:

    【解决方案2】:

    既然你说你使用Gradle,你应该先把你构建的apk放在你的vender文件夹中,接下来重要的是创建一个mk/bp文件来告诉Android构建系统如何处理这个pre-构建apk。

    附:如果你的系统应用高度依赖Android隐藏api,请确保你的Android Studio项目中有正确版本的framework.jar,或者像我一直做的那样,直接在AOSP中创建应用程序,在这种情况下,你可以检查AOSP中原始设置应用的代码结构

    this 教程可能对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多