2012-05-14 66 views
24

我需要添加一些第三方APK到我的AOSP版本。我應該保留這些APK的哪個文件夾,以便在構建代碼並創建圖像時將其安裝在模擬器中?如何在AOSP版本中添加APK?

它看起來像系統應用程序保存在包/應用程序文件夾中,所以我需要知道第三方APK的保存位置。

+0

的可能的複製[預構建的APK添加到Android AOSP system.img](http://stackoverflow.com/questions/8387477/add-prebuilt-apks-to-android-aosp-system-img) –

回答

47

向版本添加第三方APK絕對有可能。

此外,APK和具有源代碼的應用程序會轉到同一個地方; package/app文件夾。

添加新APK到構建

在AOSP根添加的文件夾:

<aosp root>/package/app/<yourappfolder>

然後這個文件夾裏面添加:

  • Android.mk
  • <yourapp.apk>

Android的make文件應該有參考您的APK,添加到您的Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE_TAGS := optional 

LOCAL_MODULE := < your app folder name > 

LOCAL_CERTIFICATE := < desired key > 

LOCAL_SRC_FILES := < app apk filename > 

LOCAL_MODULE_CLASS := APPS 

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) 

include $(BUILD_PREBUILT) 

創建於commons.mk(通常在build/target/product)爲您的APK添加一個條目行(檢查所有其他人在哪裏)

PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name > 

編譯AOSP,你有一個全新的應用程序安裝在系統上。

+5

謝謝。我厭倦了我看到的所有ROM廚房的帖子。 –

+1

@Tiago:什麼是LOCAL_CERTIFICATE:= <所需鍵>。你能否清楚這一點? – Raj

+0

抱歉,延遲,也很抱歉在這裏混亂,但回覆格式不起作用。 核心Android平臺使用四個密鑰來維護核心平臺組件的安全性: 1.平臺:作爲核心平臺一部分的軟件包的關鍵。 2.共享:在家庭/聯繫人進程中共享的事物的關鍵。 3.媒體:作爲媒體/下載系統組成部分的軟件包的關鍵。 4. releasekey:如果未另行指定,則使用默認密鑰進行簽名。 看到這裏:http://www.kandroid.org/online-pdk/guide/release_keys.html –

4

你也可以做的目標輸出目錄如下:

<path-to-your-build-dir>/host/linux-x86/bin/simg2img system.img temp.img 
mkdir system_root 
sudo mount -t ext4 -o loop temp.img system_root 

在這一點上,你可以做出各種變化,你想在系統根文件,即增加的APK到系統/應用程序等。 ..

當你完成只是去回落到輸出目錄,並做到:

sudo umount system_root 
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img 

您現在可以閃system.img使用FASTBOOT如常。

+2

這是一個更接近的問題,但並不完全是對特定問題的回答,因爲此方法是對圖像進行構建後修改,而不是構建過程的方式ude應用程序。儘管如此,它至少可以編寫腳本。 –

2

的Android.mk上面介紹如果您希望在/ data/app中安裝APK,您需要添加以下行之前的Android.mk線將安裝APK在/ system/app中

include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)