Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I add APKs in an AOSP build?

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.

like image 704
CodeGuru Avatar asked May 14 '12 08:05

CodeGuru


People also ask

How do I manually Install APK files?

Just open your browser, find the APK file you want to download, and tap it – you should then be able to see it downloading on the top bar of your device. Once it's downloaded, open Downloads, tap on the APK file and tap Yes when prompted. The app will begin installing on your device.

Where do I put APK files?

If your phone's web browser doesn't give you the option to open the file after downloading, open your file explorer app, go to the Downloads folder on your device, then tap the APK file. Allow the app any required permissions it asks for. Then, at the bottom of the installer window, tap Install.

How do I deploy an APK file on Android?

On your device, tap Settings > Apps. Tap Special access > Install unknown apps. Tap the browser from where you will download the APK, such as Chrome. If prompted, toggle Allow from this source on.


1 Answers

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:

  • empty 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

  • If your APK is already signed, use the special value PRESIGNED as value for LOCAL_CERTIFICATE
  • If you want your APK to end up in the /data/app/ directory, add the line LOCAL_MODULE_PATH := $(TARGET_OUT_DATA) before the line include $(BUILD_PREBUILT)
like image 198
Tiago Costa Avatar answered Sep 21 '22 03:09

Tiago Costa