MuntashirAkon / MuntashirAkon/AppManager

APK Editor (RE-Build APKs and More)

Open
#138 50 comments 7 reactions 0 assignees View on GitHub
Feature Good First Issue Priority: 3 Status: WIP
Dominant language
Java
Stars
9k
Forks
518
PR merge metrics
No merged PRs in 30d

Description

### Describe the feature
Basically an option to edit each part (manifest, files, data, etc.) of an app or apk/apks file, etc.

### Describe the solution you'd like
It would be great if this were similar to what is seen in the [APK Editor PRO](https://www.mediafire.com/file/5opfu8ryeakol7n/APK_Editor_Pro%252B_v2.4.6-304-basic.apk/file) app. This app has several useful features.

### Describe alternatives you've considered
It would be great if this were divided into three options:

1. Common Edit
2. Full Edit
3. Edit Data

All these options would be the same as what is seen in the APK Editor PRO. (See the "Additional context" section to learn what these options look like)

### Related issues
#6, #14, #36, #116, #165, #176, #141 and #222 (There are probably more issues but I have not found them).

### Additional context

APK Editor PRO features

| Feature | Description | Example 1 | Example 2 |
| :---: | :---: | :---: | :---: |
|XML File Edit | Basically the xml files of the apk can be edited (This is included in `Full Edit mode`) | ![IMG_20201101_101222](https://user-images.githubusercontent.com/24703825/97803880-dc96b300-1c2a-11eb-91a5-e1f83cd15c85.jpg) | ![APKEditor XML](https://user-images.githubusercontent.com/24703825/97803272-d05d2680-1c27-11eb-82d8-0642f311fcfd.jpg) |
| Common Edit | Basic parts of AndroidManifest.xml can be edited (This is included in `Full Edit mode` but still worth having a separate tab for this) | ![APKEditor Common Edit](https://user-images.githubusercontent.com/24703825/97803279-e7037d80-1c27-11eb-8711-a5658558e0a9.jpg) |
| Simple Edit | Just an option to replace the apk files (This is included in `Full Edit mode`) | ![APKEditor Simple Edit](https://user-images.githubusercontent.com/24703825/97803295-01d5f200-1c28-11eb-8bae-f1d18170d3b3.jpg) |
| Full Edit (Resource RE-Build) | In this option everything can be changed, from `AndroidManifest.xml` to `.smali` files. It is possible to edit the file codes, replace them, delete them, edit permissions, etc. | Full Edit home 1 ![Full Editor Home](https://user-images.githubusercontent.com/24703825/97803314-20d48400-1c28-11eb-9135-4cfe847fe809.jpg) | Full Edit home 2 ![IMG_20201101_100327](https://user-images.githubusercontent.com/24703825/97803648-8bd28a80-1c29-11eb-89c2-25a3dfbfce45.jpg) |
| Manifest Editor | Anything from Manifest can be changed here (A piece of `Full Edit mode`) | ![Manifest Editor](https://user-images.githubusercontent.com/24703825/97803321-32b62700-1c28-11eb-866d-14d8879bb66b.jpg) |
| Permissions Editor | This is in the manifest editor tab (A piece of `Full Edit mode`) | ![Permitions Editor](https://user-images.githubusercontent.com/24703825/97803349-52e5e600-1c28-11eb-94eb-bba06c1d049e.jpg) | ![IMG_20201101_100640](https://user-images.githubusercontent.com/24703825/97803751-1a470c00-1c2a-11eb-90b0-62d2e7d3129a.jpg) |
| Strings Editor | Strings of any language can be edited and other strings can be added (A piece of `Full Edit mode`) | ![Strings Editor](https://user-images.githubusercontent.com/24703825/97803390-68f3a680-1c28-11eb-9bee-77a3726de8c8.jpg) |
| Smali Editor | Edit `.smali` files (A piece of `Full Edit mode`) | ![Smali Editor](https://user-images.githubusercontent.com/24703825/97803433-7ad54980-1c28-11eb-963c-b62ce749ae40.jpg) |
| Edit Data (Root) | Edit database, preferences, etc. of already installed apps | ![editdata](https://user-images.githubusercontent.com/24703825/104231058-2838ba80-542d-11eb-94f6-112ddf807d57.jpg) |

Developement Info

#### Features (In the order of implementation):

- [x] 1. **[Added via a6a21a0]** ~~**Signing apk**: For edited apks, signing with a key is mandatory. But many people wants to sign existing apks as well (there will be an option in settings for that). AM will allow user to use their own signing keys instead of just the test keys.~~

- [x] 2. **Explore apk**: Basically see and explore through the apk files.

- [ ] 3. **Decompile apk**: An option to decompress the resources and the dex files and save them in a specified location. There will be a meta file along with the files which can be used to recompile the project again.

- [ ] 4. **Recompile apk**: After editing the files with the editor of your choice, you can recompile the project by importing it.
- [ ] 5. **Manifest editing**: Option to edit the app manifest.

- [x] 6. **Smali editor**: A text editor will be added to allow users to edit the smali files.

- [ ] 7. **Resource editor**: A slightly advanced editor to edit resource files.

#### Tools (There will be some one-click special tools):

- [ ] 1. **App cloning**: Changing package name in one click. Unfortunately, this will not work for apps that doesn't use unique names for `authority`.

- [ ] 2. **Remove tracker components**: Removing the tracking signature from the App Manifest. This may result the app to crash.

- [ ] 3. **Remove app permissions**: Since _normal_ permissions can't be removed, this is the only way to remove these permissions.

#### Future Plans (May never see daylight!):

- [ ] 1. **Support for patches**: Apart from the patch schema developed by the author of APK Editor, AM can store patches for the apk files (using version control system such as git) to allow users to apply them again in future. This could be helpful (but not always reliable) for the modified apps if they need an update, in which case AM will decompile the apps, apply the previously saved patches, compile and sign them before displaying the install screen. This way the user doesn't have to skip updates.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.