Tool for porting OEM specific apps on every devices without root.
Usage
bash build_port.sh <apk> <patch name> This patch will work only for specific oem that patch is selected.
Warning
Compatibility depends on the selected OEM patch. A patch designed for one OEM may not work correctly on another.
Apps that require System UI privilages cannot work here.
All patches are located inside:
apc/patches/
Create your patch using the following structure:
apc/patches/
└── patch_name/
│
├── framework/
│ ├── framework-res.apk
│ └── *.jar
│
├── lib/
│ └── *.so
│
├── lib64/
│ └── *.so
│
└── mods/
└── custom smali files
Place only the required framework files here:
- Required
.jarfiles framework-res.apk
Do not include an entire firmware dump. Only add dependencies required by the target application.
Place required native libraries (.so) inside:
lib/
for 32-bit libraries, or:
lib64/
for 64-bit libraries.
Place your custom smali modifications here.
The directory structure inside mods/ should match the desired destination inside the decompiled APK.
Example:
mods/
└── com/
└── example/
└── CustomClass.smali
If you want to use AI tools like Claude, Kimi, or any other AI coding agent, follow this workflow.
Prompt:
Git clone https://github.com/SameerAlSahab/AppsPorter
Necessary tools, keys, and scripts are already included in the repository.
You are a professional Android reverse engineer. Your task is to maximize the success rate of porting the target OEM-specific application to the intended device without root.
Analyze the repository structure, existing OEM patches, build scripts, and available tools before making changes.
Here is the APK you need to port:
[APKMIRROR LINK / DIRECT DOWNLOAD LINK / CHAT ATTACHMENT]
If using APKMirror, check the scripts directory for available download scripts.
Analyze the APK's dependencies, framework requirements, native libraries, and smali code. Identify compatibility issues and implement the necessary fixes using the existing AppsPorter patch structure.
Create or update the appropriate OEM patch under apc/patches/. Include only the required framework dependencies, native libraries, and custom smali modifications. Avoid unnecessary firmware files or unrelated changes. Even though scripts does it all. But you have to recheck new smalis, remove dangerous checks that can lead the app to crash.
Build the ported APK, sign it, inspect the build output, and resolve any errors you can identify. Validate the final APK as thoroughly as the available tools allow.
Document the changes made, dependencies added, known limitations, and any remaining issues.
Do not claim that the port works unless it has been successfully tested on the intended device. If device testing is unavailable, clearly state what remains unverified. If the app not boots, as we have in-app logcat, ask user to give logs, then continue to edit more until success.
This project is licensed under the MIT License - see the LICENSE file for details.
- android-tools - Licensed under Apache License 2.0
- apktool - Licensed under Apache License 2.0
- smali - Licensed under BSD 3-Clause License
Contributions are always welcome!
If you like this project, star it, fork it or contribute.
Take love from APC ❤️
Sameer Al Sahab, reiryuki and you!!!
