Welcome to the documentation page of APK Explorer & Editor (AEE), an open-source tool to explore and navigate through the contents of any installed APK file on an Android device.This page explains the basic usage of AEE in detail.

This page includes the following contents.

User Interface

The main user interface of AEE is categorized into a number of pages, and are

1. Installed Apps

This page will by default load all the installed application on your device. AEE also allow offers a separate view of System and User apps. The following tasks are allowed on this page.

  1. Single click on an icon will load it in full screen. From the newly opened screen, it is also possible to save the same into device storage.
  2. Single click on any other part of an application will open the contents of the installed application in a File Manager and allows users to navigate through its contents.
  3. It is possible to Save/Export individual resource files such as fonts, graphics, binary XML files, etc to device storage.
  4. AEE even allow users to Delete or Replace original resource files of an APK.
  5. Finally, AEE offers the generation of a signed (with AEE custom key) APK's/App Bundles after the above-mentioned modifications.
  6. Alternately, long clicking on an entry on the main screen will allow users to simply resign APK's/App bundles with AEE custom key.

2. Projects

This page lists all the applications (including the uninstalled ones) that are already explored from the first page, provided the user decided to retain the explored data upon asking (app will prompt when closing a project). This page also allows almost all the tasks that are available in the previous page.

3. Extracted APK's

This page lists all the APK's/App bundles created on the first page. Various tasks that are allowed on this page are

  1. Install an exported resigned APK/Split APK's by single clicking.
  2. Share an exported resigned APK by long clicking.

4. About

Shows very basic information about the development of this project. It includes links to visit the source code of AEE, Telegram support group etc.

APK Signing

AEE will recognize APK files and app bundles and sign them accordingly with its default key. In order to sign an APK using a custom Keystore, some specific methods need to be followed and are explained in the next section.

Signing with a custom key

AEE uses PseudoApkSigner library by Aefyr to sign APK's. As a result, AEE requires a private key in pk8 format as well as an RSA template file created from the same key.

How to create private key

  1. Convert a java keystore (JKS) to PKCS12 format

    keytool -importkeystore -srckeystore KEYSTORE_PATH -destkeystore intermediate.p12 -srcstoretype JKS -deststoretype PKCS12

  2. Convert a PKCS12 to pem format

    openssl pkcs12 -in intermediate.p12 -nodes -out intermediate.rsa.pem

  3. Finally convert pem to pk8 format

    openssl pkcs8 -topk8 -outform DER -in intermediate.rsa.pem -inform PEM -out private.pk8 -nocrypt

How to create RSA template

  1. Prepare a signed APK with jarsigner using the key to be later used as RSA template

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore KEYSTORE_PATH APK_PATH alias_name

  2. Extract the above-signed APK file and get the RSA certificate (file with .RSA extension) from META-INF folder

  3. Remove last X bytes from the RSA certificate, where X equals the RSA key size. As an example, to remove the last 256 bytes from an RSA certificate, use the following command.

    truncate --size=-256 RSA_CERT_PATH

Configure AEE to work with custom key

  1. Save private key as

    /data/data/com.apk.editor/files/signing/APKEditor.pk8

  2. Save RSA template as

    /data/data/com.apk.editor/files/signing/APKEditor

  3. AEE will now onwards use the new key for signing as long the above-mentioned files exist.
Please Note: A link to open this page is available in the About section of this app.