构建Android应用程序作为AOSP应用程序

时间:2014-03-28 11:41:15

标签: android android-source

我想在AOSP代码中构建和嵌入我的Android应用程序。我的目标是为我的应用程序授予所有系统级权限,以便我可以访问系统级权限。

我在我的应用程序的AndroidManifest.xml文件中添加了以下标志 -

coreApp="true"
android:sharedUserId="android.uid.system"

以下是我的Android.mk -

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := TestApp
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

但我仍然无法在已安装的应用程序列表中看到我的应用程序! 知道怎么做吗?

3 个答案:

答案 0 :(得分:0)

您似乎忘了将应用程序添加到构建中。如果您修改Android的核心文件(虽然不建议这样做),您需要修改build/target/product/core.mk文件。进入PRODUCT_PACKAGES您需要添加应用程序。

但是,就我而言,如果您希望应用程序仅访问受系统权限保护的功能(级别signaturesignatureOrSystem),则无需添加该行android:sharedUserId="android.uid.system"到您的清单文件中。此行表示您的应用程序将作为AID_SYSTEM Linux用户运行,这意味着您的应用程序和系统服务器将共享相同的UID。据我所知,这将允许您绕过所有权限检查,因为SYSTEM和ROOT用户被授予所有权限。因此,我不建议你添加这一行。

答案 1 :(得分:0)

某些情况下,并非所有情况都需要

shareUserId。例如,如果您需要在安全设置中访问飞行模式设置而没有shareUserId,您将能够更改设置,但是当您需要将更改广播到系统时,它将无声地失败。在添加shareUserId之前,广播将无效。

答案 2 :(得分:0)

正如Yury所说,你必须告诉构建系统将你的app包含在系统映像中。您可以通过build / target / product / core.mk执行此操作,也可以更改位于设备文件夹中的device.mk,例如device / lge / bullhead / device.mk并将其添加到PRODUCT_PACKAGES。

这样它就会被构建过程接收并包含在你的ROM中。