2012-05-14 65 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)