I need to add some 3rd party APKs to my AOSP build. What folder should I keep these APKs so that when I build the code and the image is created, it is installed in the emulator?
It looks like the system apps are kept in the packages/app folder so I need to know where the third party APKs are kept.
Adding third party APKs to the build is definitely possible.
Also APKs and APPs with source code go to the same place; the package/app
folder.
Adding a new APK to the build
In the AOSP root add the folder:
<aosp root>/package/app/< yourappfolder >
Then inside this folder add:
Android.mk
< yourapp.apk >
The android make file should have the reference to your apk, add this to your 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)
Create an entry in the commons.mk
(from AOSP 8.1.0 onwards it is called core.mk
, and is usually found in build/target/product
) for your apk add the line (check where all the others are)
PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name >
Compile the AOSP and you have a brand new app installed on the system.
Notes
PRESIGNED
as value for LOCAL_CERTIFICATE
/data/app/
directory, add the line LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
before the line include $(BUILD_PREBUILT)