Source code of APK-Explorer-Editor (AEE), an open-source tool to explore the contents of an installed APK!

Overview

APK Explorer & Editor (AEE)

AEE

APK Explorer & Editor, an open-source tool to explore the contents of an installed APK, is strictly made with an aim to inspect an installed APK file.

How-To-Use

AEE currently supports the following tasks

  • Explore an installed application and navigate through its contents.
  • Save/export individual resource files such as icon, fonts, graphics, binary XML files, etc to device storage.
  • Export and easily manage (install, share etc.) APK's/Split APK's into device storage.
  • Includes a feature-rich APK/Split APK/App bundle installer (easily pick and install files from device storage)
  • It is also possible to edit text/binary XML files using an in-built text editor (disabled by default in the Settings menu).
  • Delete or replaces resources.
  • Create signed APK's/App Bundles after the above-mentioned processes.
  • Resign APK's/bundles with AEE custom key.

Download

Support

Credits

A list of people who contributed to this project is available here.

Translations

Please help me to translate this application via POEditor. You may also translate after downloading the original language string available here.

License

Copyright (C) 2021-2022 APK Explorer & Editor <[email protected]>

APK Explorer & Editor (AEE) is a free softwares: you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at
your option) any later version.

APK Explorer & Editor is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License along
with APK Explorer & Editor. If not, see <http://www.gnu.org/licenses/>.
Comments
  • Export paths option are disabled in settings

    Export paths option are disabled in settings

    Hi,

    Both of the export path settings (APK & non-APK) are lined through and disabled.

    Exports do work as expected. They just default to \Android\data\com.apk.editor\files

    What would cause the path settings to be disabled? Storage permission is on.

    opened by user8446 5
  • Exploring app

    Exploring app

    FATAL EXCEPTION: AsyncTask #2 Process: com.apk.editor, PID: 2771 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:325) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:760) Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6994) at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1092) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.view.View.requestLayout(View.java:19810) at android.widget.TextView.checkForRelayout(TextView.java:7369) at android.widget.TextView.setText(TextView.java:4487) at android.widget.TextView.setText(TextView.java:4344) at android.widget.TextView.setText(TextView.java:4319) at android.app.ProgressDialog.setMessage(ProgressDialog.java:316) at b.b.a.i.j0.doInBackground(:1) at android.os.AsyncTask$2.call(AsyncTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:237) ... 4 more

    opened by islam2hamy 5
  • Editing .dex files

    Editing .dex files

    Using apktool (Apache License 2.0), you can decompile an .apk file. (apktool d) While the .apk file is decompiled, the classes.dex is converted to smali and the resources are extracted. After making the changes to e.g. the smali files, the apk can be assembled (apktool b).

    This tool could be integrated into the app, as it would give the app even more abilities.

    enhancement 
    opened by JCWasmx86 3
  • bugfix[#35]: update pt-br short_description.txt

    bugfix[#35]: update pt-br short_description.txt

    Updated fastlane-description such as to keep it shorter than 86 characters as mentioned in #35.

    This reverse translates to something like: Open source APK and App bundles installer/explorer/editor for Android!

    I had to drop the "split apk" part so that it can fit.

    opened by Lennoard 2
  • APK can't select

    APK can't select

    I have Xiaomi Poco X3 NFC android 10, when I go to select a apk say that (see picture) but on my Sony Xperia Z5 android 7.1.1 the apk can select the same apk file is not split, why ? IMG_20220725_192917

    opened by skelletR 2
  • Texts of version and size overlap with each other

    Texts of version and size overlap with each other

    Describe the bug

    Dear developer! In the process of using, I found a bug in layout / display. As shown in the figure below, on the main page, texts of version and size overlap with each other. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size). Because of some problems with my eyesight, I often use the largest font and display. 103165857-dbaf8580-4857-11eb-9e22-120ae1901389

    App version is 0.17, my mobile phone is Google Pixel 2, and the screen resolution setting is 1920* 1080. And my font size and display size are the largest ! ! ! Also, my Android system version is 10.0. The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply. Thank you so much!!

    Expected behavior

    I hope the texts are separated in this situation.

    Steps to reproduce the behavior:

    1.use the largest font and display in the display setting 2.open this app, and wait until the loading progress is done 3.this error could be seen

    Screenshot

    (The overlap is marked in red)

    copy

    Environment

    1. Version of APK Explorer & Editor : 0.17
    2. Device : Google Pixel 2,
    3. OS version : Android 10.0
    opened by EasyVector 2
  • APP question regarding package installer

    APP question regarding package installer

    Dear Team AEE - My question is regarding the installer: Does the AEE app rely on the built-in Android Package Installer or does it work independently from it? Thank you and I appreciate your time. Sincerely,

    opened by mtris 2
  • Weak reference to InstallerActivity in thread #29

    Weak reference to InstallerActivity in thread #29

    Use the weak reference to Activity (InstallerActivity) in refresh thread to avoid memory leaks. And interrupt the thread before the destroy method invocation of activity. For the issue #29

    opened by cuixiaoyiyi 1
  • Update documentation.html

    Update documentation.html

    On my System only the coreutils truncate supports the option --size, but all versions i checked (toybox/busybox/etc.) Support the -s option which is the same as --size

    opened by tvirushive3 1
  • please , min_sdk 21 (android 5.0) !

    please , min_sdk 21 (android 5.0) !

    thank you for so usefull application!

    please, come up AEE to min_sdk 21 (android 5.0) ! (or , if not possible, then at least to min_sdk 22, Android 5.1) many thanks in advance!

    opened by DI555 1
  • Fixed the problem of overlapping texts of version and size

    Fixed the problem of overlapping texts of version and size

    Dear developer:

    Hello! I am the creator of issue #10, and I have fixed the problem of overlapping texts of version and size by using ConstraintLayout and did what I could to make this page more responsive. I would appreciate it if you could kindly revise my code and leave me some advice. Thank you so much for your precious time!! :)

    Here is a screenshot before my modifications:

    copy

    and after my modifications:

    copy

    I am looking forward to your comments.

    opened by EasyVector 0
  • Bug

    Bug ".xml"

    I changed the "main.xml". I saved and installed the app with changes made. Given error in executing the apk... I went back to APK Explorer Editor I tried to view the file "main.xml" and crash the execution.

    App Name: APK Explorer & Editor Package Name: com.apk.editor App Version: v0.24 SDK Version: 30

    Crash Report

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apk.editor/com.apk.editor.activities.TextViewActivity}: o2.a: Unexpected chunk type:19516 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3491) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3659) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2115) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:250) at android.app.ActivityThread.main(ActivityThread.java:7755) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958) Caused by: o2.a: Unexpected chunk type:19516 at p2.b.b(Unknown Source:58) at m2.a.d(:3) at t2.c.H(:1) at w0.g.c(:9) at com.apk.editor.activities.TextViewActivity.onCreate(:5) at android.app.Activity.performCreate(Activity.java:8077) at android.app.Activity.performCreate(Activity.java:8061) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3464) ... 11 more

    Steps to reproduce the issue:

    opened by Jetrom17 0
  • Portuguese short_description is too long

    Portuguese short_description is too long

    Fastlane's short_description.txt is limited to 80 chars. Yours for pt-BR currently has 86 chars and thus will be truncated in the middle of its last word. Could you please fix that? I don't speak Portuguese, so I cannot vouch for correctness – but as it's clear it's an Android app, maybe it can simply be shortened to

    Instalador/explorador/editor de APKs/Pacote de apps de software livre

    Done that locally in my repo now; would be nice if you could fix it here as well before the next release is tagged and "unfixes" it again with your listing :wink: Thanks in advance!

    opened by IzzySoft 2
  • Fix settings not displaying their updated values immediately

    Fix settings not displaying their updated values immediately

    While working on adding jadx, I found this bug, caused by getData() regenerating the settings list instead of fetching a stored one that was previosly created. Here's my fix: https://github.com/Nik-Kot/APK-Explorer-Editor/commit/6726f9d5ea6a7a6ed0a3fd60edbcf35ca0c06c4b

    opened by Nik-Kot 3
  • Decompile apps further into Java code

    Decompile apps further into Java code

    Add support for decompiling apps into Java code using jadx as a library. https://github.com/skylot/jadx/wiki/Use-jadx-as-a-library

    I am willing to contribute of this idea gets approval from creators.

    opened by Nik-Kot 11
  • Ability to delete folders?

    Ability to delete folders?

    Hey. First of all, thanks for the app. I don't know much about android apps and java, but I do have a basic understanding, which makes me think that it should be possible to delete folders. This would be useful for deleting trackers/crash reporters which potentially invade the user's privacy. Thanks :)

    opened by shruuub 0
  • Activity memory leak caused by the anonymous thread and invalid interrupt check

    Activity memory leak caused by the anonymous thread and invalid interrupt check

    An anonymous inner class will hold a reference to the this pointer of the outer class and will not be released until the thread ends.

    It will hold the Activity and prevent its timely release.

    com.apk.editor.activities.InstallerActivity

    The anonymous thread can be replaced by static class to eliminate unnecessary references.

    Besides, an anonymous thread cannot call the interrupt() method until the Activity exits, so calling isInterrupted() in the thread of the InstallerActivityrefreshStatus() method may not always work.

    The anonymous thread can be replaced by static class to eliminate unnecessary references and taken as a field to interrupt the thread.

    If you agree, a PR will be submitted.

    enhancement 
    opened by cuixiaoyiyi 1
Releases(v0.24)
Owner
APK Explorer & Editor
Occasional Android Developer!
APK Explorer & Editor
Tool for parsing GC logs

Microsoft GCToolKit GCToolkit is a set of libraries for analyzing HotSpot Java garbage collection (GC) log files. The toolkit parses GC log files into

Microsoft 1.2k Jan 2, 2023
osc2checker is a grammar check tool for ASAM OpenSCENARIO 2 scenario files.

51WORLD OpenSCENARIO2 Grammar Checker (osc2checker) osc2checker is a grammar check tool for ASAM OpenSCENARIO 2 scenario files. It's implemented by AN

51Sim-One 14 Dec 7, 2022
A simple JAVA HTTP requests tool.

JAVA-HTTP Hello ?? I made this very simple tool to start studying HTTP requests in JAVA. You need JAVA 18 to be able to test it: Download JAVA Functio

Ghost 9 Oct 16, 2022
Open NFCSense Library

OpenNFCSense API Open-source API of NFCSense for the Processing programming environment (http://processing.org/). Please refer to the following workfl

Rong-Hao Liang 13 Jul 25, 2022
Open Liberty is a highly composable, fast to start, dynamic application server runtime environment

Summary A lightweight open framework for building fast and efficient cloud-native Java microservices: Open Liberty is fast to start up with low memory

Open Liberty Project 1k Dec 21, 2022
Write JSON unit tests in less code. Great for testing REST interfaces.

JSONassert Write JSON unit tests in less code. Great for testing REST interfaces. Summary Write JSON tests as if you are comparing a string. Under the

Skyscreamer 899 Dec 29, 2022
A 250 lines single-source-file hackable JSON deserializer for the JVM. Reinventing the JSON wheel.

JSON Wheel Have you ever written scripts in Java 11+ and needed to operate on some JSON string? Have you ever needed to extract just that one deeply-n

Roman Böhm 14 Jan 4, 2023
A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)

Bytecode Viewer Bytecode Viewer - a lightweight user friendly Java Bytecode Viewer. New Features WAR & JSP Loading JADX-Core Decompiler Fixed APK & de

Kalen (Konloch) Kinloch 13.5k Jan 7, 2023
JDKMon - A little tool written in JavaFX that monitors your installed JDK's and inform you about updates

JDKMon JDKMon Home JDKMon is a little tool written in JavaFX that tries to detect all JDK's installed on your machine and will inform you about new up

Gerrit Grunwald 246 Jan 3, 2023
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Sourcetrail is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code. Windows: Lin

Coati Software 13.2k Jan 5, 2023
Dex : The Data Explorer -- A data visualization tool written in Java/Groovy/JavaFX capable of powerful ETL and publishing web visualizations.

Dex Dex : The data explorer is a powerful tool for data science. It is written in Groovy and Java on top of JavaFX and offers the ability to: Read in

Patrick Martin 1.3k Jan 8, 2023
Writeup and exploit for installed app to system privilege escalation on Android 12 Beta through CVE-2021-0928

Writeup and exploit for installed app to system privilege escalation on Android 12 Beta through CVE-2021-0928, a `writeToParcel`/`createFromParcel` serialization mismatch in `OutputConfiguration`

null 52 Dec 30, 2022
A tool for reverse engineering Android apk files

Apktool This is the repository for Apktool. If you are looking for the Apktool website. Click here. It is a tool for reverse engineering 3rd party, cl

Connor Tumbleson 15.4k Jan 4, 2023
This is a blog series to explore OpenJDK's Project Panama.

Panama 4 Newbies This is a quick intro to OpenJDK's Project Panama. Part 1 https://foojay.io/today/project-panama-for-newbies-part-1 Part 2 https://fo

Carl Dea 59 Dec 23, 2022
These samples explore the different options that Spring Boot developers have for using Javascript and CSS on the client (browser) side of their application.

Table of Contents Getting Started Narrowing the Choices Create a New Application Webjars Show Me Some Javascript Normalizing Resource Paths Adding Tab

Dave Syer 18 Jul 29, 2022
A demo application to learn and explore all topic of Programming in Java Course.

Kakshya RMS A simple Java lab-work for the class of 'Programming in Java' Explore the docs » View Demo · Report Bug · Request Feature Table of Content

Bikram Parajuli 16 Jun 8, 2022
Java project to explore programming concepts by creating chatting application.

ChitChat - Let's explore programming Abstract ✍️ This project aimed to develop a chatting application from very basic, by exploring the fundamentals o

Sri Manikanta 3 Dec 23, 2022
Detect if the system is recording, mirroring, or using AirPlay to stream the contents of the screen.

react-native-is-screen-captured-ios Detect if the system is recording, mirroring, or using AirPlay to stream the contents of the screen. https://devel

Dylan 20 Dec 30, 2022
contents based on article cross-team collaboration

camelk-team-collaboration This repository contains all the sources showcased in the following Red Hat Developers article: https://developers.redhat.co

null 7 Apr 27, 2022