furniel / apk-changer Goto Github PK
View Code? Open in Web Editor NEWCommand line program for modifying apk files
Command line program for modifying apk files
Apk changer is a command line program for modifying apk files. It`s similar to apk manager, but have more options. Features: - Normal and Advanced Mode. - Multicore support(much faster than other tools in batch operations and image optimization) - Decompile/Compile selected part of apk files.(Batch mode supported, framework dependent decompiling supported too) - Optimize pngs inside apk files(including .9.pngs).(Batch mode supported) - Zipalign apk files - Sign apk files(Batch mode supported) - Recompress apk - Protect Apk resources - Dex to java decompilation - Adb logcat with logcat options(via WiFi or usb cable) - Four versions of apktool(1.4.3, 1.5.3, 2.3.2, latest development)-if error occurs while decompiling program will try to use alternative version and will compile your apk with version that was used for decompilation - Four languages at the moment(Russian, English, Dutch, Deutch) - if you want to translate program into other language just let me know - Settings (Compression level, Heap size, optimization level, apktool version, smali version, language...). - Error detection. If error occured, program reports about it. - Logs (For batch Decompilation/Compilation program creates two logs. First is full and second shows only with what apks occured errors). - Decompile/Compile jar files(framework files) - All stuff i forgot
I have problems with the apk signing, the apk can not be installed afterwards.
So far there were no problems.
Only when I sign the apk on the phone again, it can be installed.
-------------------------------------------------------------------------
-----------------------|ned 31.05.2015 -- 13:46:43,50|-----------------------
-------------------------------------------------------------------------
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Exception in thread "pool-1-thread-5" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOfRange(Arrays.java:3664)
at java.lang.String.<init>(String.java:201)
at java.lang.StringBuilder.toString(StringBuilder.java:407)
at jadx.core.codegen.CodeWriter.toString(CodeWriter.java:269)
at java.lang.String.valueOf(String.java:2982)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at jadx.core.codegen.CodeWriter.add(CodeWriter.java:116)
at jadx.core.codegen.ClassGen.makeClass(ClassGen.java:104)
at jadx.core.codegen.CodeGen.visit(CodeGen.java:19)
at jadx.core.ProcessClass.process(ProcessClass.java:43)
at jadx.api.JadxDecompiler.processClass(JadxDecompiler.java:281)
at jadx.api.JavaClass.decompile(JavaClass.java:59)
at jadx.api.JadxDecompiler$1.run(JadxDecompiler.java:161)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "pool-1-thread-7" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-1" java.lang.OutOfMemoryError: GC overhead limit exceeded
SLF4J: Failed toString() invocation on an object of type [jadx.core.dex.nodes.BlockNode]
java.lang.OutOfMemoryError: GC overhead limit exceeded
SLF4J: Failed toString() invocation on an object of type [java.util.ArrayList]
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-10" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-4" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-11" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-1-thread-13" java.lang.OutOfMemoryError: GC overhead limit exceeded
Through whole time I still had gigabytes of free RAM so I assume not enough of it is allocated to java? Just smali decompiling works fine though.
at brut.androlib.res.AndrolibResources.installFramework(AndrolibResources
.java:611)
at brut.androlib.Androlib.installFramework(Androlib.java:469)
at brut.apktool.Main.cmdInstallFramework(Main.java:253)
at brut.apktool.Main.main(Main.java:81)
Caused by: java.io.IOException: Int Expected: 0x001c0001, got: 0x00000000
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:43)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100
)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:81)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
... 5 more
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc
file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:54)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibReso
urces.java:540)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java
:76)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java
:68)
at brut.androlib.Androlib.getResTable(Androlib.java:51)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:191)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:116)
at brut.apktool.Main.cmdDecode(Main.java:146)
at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Int Expected: 0x001c0001, got: 0x00000000
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:43)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100
)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:81)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
... 8 more
Installing ANDROID 4.4w...
Installing ANDROID 4.4...
Installing ANDROID 4.3...
Installing ANDROID 4.2...
Picked all recommended settings. What am I doing wrong?
Just cloned master, installed with default settings, tried to decomplie/compile base.apk (https://play.google.com/store/apps/details?id=com.fc2.blog9.zze128.kiguchiprjx&hl=ja)
Log
I: Compiling base...
W: C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\AndroidManifest.xml:2: error: Error: No resource found that matches the given name (at 'versionName' with value '?????').
W:
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [aapt, p, --forced-package-id, 127, --min-sdk-version, 14, --target-sdk-version, 24, --version-code, 12, --version-name, ?????, --no-version-vectors, -F, C:\Users\misaki\AppData\Local\Temp\APKTOOL5655174236270215970.tmp, -0, arsc, -I, C:\Users\misaki\AppData\Local\apktool\framework\1-api24.apk, -S, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\res, -M, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\AndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:477)
at brut.androlib.Androlib.buildResources(Androlib.java:411)
at brut.androlib.Androlib.build(Androlib.java:310)
at brut.androlib.Androlib.build(Androlib.java:263)
at brut.apktool.Main.cmdBuild(Main.java:227)
at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [aapt, p, --forced-package-id, 127, --min-sdk-version, 14, --target-sdk-version, 24, --version-code, 12, --version-name, ?????, --no-version-vectors, -F, C:\Users\misaki\AppData\Local\Temp\APKTOOL5655174236270215970.tmp, -0, arsc, -I, C:\Users\misaki\AppData\Local\apktool\framework\1-api24.apk, -S, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\res, -M, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:440)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:463)
... 5 more
Caused by: brut.common.BrutException: could not exec (exit code = 1): [aapt, p, --forced-package-id, 127, --min-sdk-version, 14, --target-sdk-version, 24, --version-code, 12, --version-name, ?????, --no-version-vectors, -F, C:\Users\misaki\AppData\Local\Temp\APKTOOL5655174236270215970.tmp, -0, arsc, -I, C:\Users\misaki\AppData\Local\apktool\framework\1-api24.apk, -S, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\res, -M, C:\Users\misaki\PublicZone\Apk-Changer-master\out\base\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:95)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:434)
... 6 more
decompiled AndroidManifest.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.fc2.blog9.zze128.kiguchiprjx" platformBuildVersionCode="24" platformBuildVersionName="7.0">
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
<activity android:name="com.fc2.blog9.zze128.kiguchiprjx.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.fc2.blog9.zze128.kiguchiprjx.AppListActivity"/>
<activity android:name="com.fc2.blog9.zze128.kiguchiprjx.DisplayActivity"/>
<activity android:name="com.fc2.blog9.zze128.kiguchiprjx.PrefarencesActivity"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
</application>
</manifest>
Would it be possible to have a switch to automatically change the package name?
i want to convert some vdex to dex or not deodex whole system
but i not find this option
android 9.0
vdex->cdex->dex
apps cannot install without signature,
can you add features like this?
При декомпиляции, на некоторых системах файлы task* похоже не удаляются, хотя возможно что проблема в чем то другом.
The rom is here: http://download.h2os.com/OnePlus%203T/forum/OnePlus3THydrogen_28_OTA_060_all_1903310222_b76c39af1e5d4362.zip
The log is here:
log.txt
AndroidManifest.xml:21: error: unexpected element found in .
When decompiling apk, it goes in forever. It looks like the apk is fully decompiled but it keep saying decompiling.... Unable to end Apkchanger task from taskmanager. Unable to end process as process is taking to windows explorer.exe. Windows 7 32 bit
Apkchanger should support arm64 deodexing!
I don't make odex P tools
use shell
can you making ?
Hello, can you provide batch source code?
Hello, tried this app and used all recommended settings. placed apk inside place-files-here-for-modding folder but after selecting res compression, app is closing and nothing is happening. Don't know what's wrong. No error message. using the latest version. windows 7 32 bit
Right now I'm just trying to decompile/recompile without any changes (yet).
What I did.
Doing that produces the following log
-------------------------------------------------------------------------
-----------------------|Mon 02/13/2017 -- 15:39:29.25|-----------------------
-------------------------------------------------------------------------
The system cannot find the file specified.
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
########################################################################
I: Decompiling FBReaderJ_ice-cream-sandwich...
Command Line Error:
Incorrect wildcard type marker
*.dex
I: Baksmaling classes.dex...
I: FBReaderJ_ice-cream-sandwich decompiled
########################################################################
Trying to compile fails with a much larger error.
Many lines, most of them similar to
W: C:\ApkChanger\out\FBReaderJ_ice-cream-sandwich\res\layout-v17\abc_alert_dialog_button_bar_material.xml:2: error: No resource identifier found for attribute 'layoutDirection' in package 'android'
Nowadays apps are huge and many of them have multiple dex files (classes.dex
, classes2.dex
etc.).
It appears that Apk-Changer does not support this at all at the moment (it only decompiles/compiles original classes.dex
, but completely ignores all subsequent classes).
Example huge app that does not properly decompile/recompile: http://www.apkmirror.com/apk/spotify-ltd/spotify/spotify-7-4-0-1799-release/
Can you add feature apk and service.jar flashable zip flashing from twrp?
Specifically can flash apk push /system/priv-app and service.jar push /system/framework
I love your tools all in one
\AndroidManifest.xml:496: error: attribute android:foregroundServiceType not found.
with Apk-Changer
android:foregroundServiceType="0x00000008"
with Batch ApkTool
android:foregroundServiceType="location"
same apktool.jar
Deodexing does not work with some files using the tool. I copied in full app
, priv-app
and framework
dump of the device, and yet it listed bunch of Can't deodex <App name here>
lines into Deodex_errors.txt˙
Procedure/script from this repository works fine, so it is not the issue in the files: https://github.com/cofface/android_deodex
Example broken file: https://dl.dropboxusercontent.com/u/6999250/deodex.7z
When trying to run Apkchanger, it's simply closing after showing 'checking all files exist...' No error message, nothing. Windows 7 32 bit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.