将android应用程序构建为AOSP应用程序

将android应用程序构建为AOSP应用程序,android,android-source,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 := o

我想在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)
但我仍然无法在已安装的应用程序列表中看到我的应用程序!!
你知道怎么做吗?

看来你忘了将应用程序添加到构建中。如果您修改了Android的核心文件,尽管不建议您修改build/target/product/core.mk文件。在产品包中,您需要添加应用程序


但是,在我看来,如果您只想让应用程序访问受系统权限级别signature和signatureOrSystem保护的功能,则无需在清单文件中添加行android:sharedUserId=android.uid.system。这一行表示您的应用程序将作为AID_SYSTEM Linux用户运行,这意味着您的应用程序和系统服务器将共享相同的UID。据我所知,这将允许您绕过所有权限检查,因为系统和根用户被授予所有权限。因此,我不建议您添加这一行。

shareUserId在某些情况下是必需的,而不是所有情况。例如,如果您需要访问安全设置中的飞机模式设置,而不使用shareUserId,则您可以更改设置,但当您需要向系统广播更改时,它将以静默方式失败。在添加shareUserId之前,广播将无效。

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


这样,它就会被构建过程提取并包含在您的ROM中。

这是一个预构建的APK,还是您希望在Android的make build中从源代码构建的APK?LOCAL_SRC_FILES行表示您是从源代码生成的,但是您希望使用include$BUILD_包,而不是include$BUILD_prebuild。