簡體   English   中英

將Android應用構建為AOSP應用

[英]Building android app as AOSP app

我想在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文件。 您需要在PRODUCT_PACKAGES中添加應用程序。

但是,以我的觀點,如果您只希望您的應用程序獲得對使用系統權限保護的功能(級別為signaturesignatureOrSystem )的訪問權限,則無需添加行android:sharedUserId="android.uid.system"到清單文件中。 此行意味着您的應用程序將以AID_SYSTEM Linux用戶身份運行,這意味着您的應用程序和系統服務器將共享相同的UID。 據我所知,這將使您繞過所有權限檢查,因為SYSTEM和ROOT用戶被授予了所有權限。 因此,我不建議您添加此行。

在某些情況下(並非全部),需要shareUserId。 例如,如果您需要訪問安全設置中的飛行模式設置,而沒有shareUserId,則可以更改設置,但是當您需要將更改廣播到系統時,它將靜默失敗。 在您添加shareUserId之前,廣播將無效。

正如Yury所說,您必須告訴構建系統在系統映像中包含您的應用程序。 您可以通過build / target / product / core.mk進行操作,也可以更改設備文件夾中的device.mk,例如device / lge / bullhead / device.mk並將其添加到PRODUCT_PACKAGES。

這樣,它就可以在構建過程中獲取並包含在ROM中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM