Lordroid batch deodex ODTRTA !
One Deodexer To Rule Them All
One Deodexer To Rule Them All
Code:
*** Disclaimer
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Hi all
First words :
First of all I want to say that I am not a big software engineer I am just a guy who knows a little about something and wanna make something useful out of it.
Back story:
A friend of mine asked me to make him a GUI batch deodexer to help him in the process of making stock base custom roms so I decided if I am going to do this I am going to do it right ,I fire up eclipse and stared coding what you are gonna find in this is the result of it.
Note :
Please note that even though I tested it and it is working just fine , there may be bugs I didn't run into because lets face it I can't test it for all available devices and ROMs and all PC OSs there is just too much out there so I tried to make the software as OS independent as humanly possible by using only java libraries and binaries (byte code binaries) the only thing that I used native binaries for it is the zipalign binaries because there is no java library for that (if there is I am open to suggestions).
Description:
Lordroid batch deodexer ODTRTA One Deodexer To Rule Them All ,is a free software writen in JAVA that can deodex any android rom with ease ,all you have to do is point the system folder and click the Deodex Now button ! it runs under any OS that have JAVA JRE 8 and higher (see pre-required for more details about this limitation) ,it is compatible with all Roms SDK levels and know architectures but you should note that it support list is the same as smali/backsmali && oat2dex(smaliEX) support list all roms not compatible with them will not be supported by this software since it uses those softwares to do the job.
Pre-required
1 - JAVA JRE 7 or higher.
2 - JAVA PATH needs to be set follow those links for more informations Windows | Linux | Mac
3 - If you are going to work with roms that have squashfs the tool only provides it for windows if you are using linux or mac OS refer to the Manual for instructions of how to install the squashfs-tool.
4- Linux command line users ,X-server needs to be running even when using command line tool (fix in progress )
Main Features
- Deodex any Rom from 1.6 and Above and YES 6.x is supported !
- Supports all Roms arch arm ,arm64 ,mips ,mips64 ,x86,x86_64
- Optional Zipalign all Apks after deodexing
- Optional resign all apks after deodexing
- Create a flashable zip of the deodexed Rom
- the Software can use up to 4 Threads to speed-up the deodexing
- Tools to only batch zippalign or sign apks in a given folder recursively
- Can be used on any system as long as there is JAVA JRE 7 or higher
- For Roms Lollipop and above the tool uses oat2dex to deodex if that tool fail we use the latest version of smali/baksmali to do the job which give a higher success rate
- From version 1.00 now you can pull system folder from device directly and deodex it !
- From v1.10 squashfs roms are supported please refer to the manual to make sure all dependencies are met !
- Detects apks that are under framework no need to copy them to app or priv-app folders
- Multi Language English,French,Espagnol and Portuguese (PM me if you wanna translate or help with the spell errors
)
How to use (GUI) : (any system with JAVA JRE 7 installed)
1 - Open the program using JAVA SE or from command line with java -jar lordroid-ODTRTA.jar
2 - Select a system folder framework folder and build.prop needs to be there app and priv-app are optional
3 - If the chosen folder is valid, the Deodex now button will be activated other wise a log with the error will
be printed in the log panel
4 - Click on the deodex now and wait for it
5 - When the deodex process is done you can either copy the deodexed file and do what ever you want or you can click on create flashable zip to create a zip flashable from recovery for more details on this feature see the guide lines on POST2.
6 - When done a log file will be saved under logs/yyyy-MM-dd_hh-mm-ss.log & a more detailed log wwill be saved as logs/yyyy-MM-dd_hh-mm-ss_full.log check it out to see what happens or just scroll in the log Panel to see the logs
7 - The tool now have a tool to batch zipalign/sign in a given folder recursively (this particular will only zipalign/sign no deodex will be made !).
2 - Select a system folder framework folder and build.prop needs to be there app and priv-app are optional
3 - If the chosen folder is valid, the Deodex now button will be activated other wise a log with the error will
be printed in the log panel
4 - Click on the deodex now and wait for it
5 - When the deodex process is done you can either copy the deodexed file and do what ever you want or you can click on create flashable zip to create a zip flashable from recovery for more details on this feature see the guide lines on POST2.
6 - When done a log file will be saved under logs/yyyy-MM-dd_hh-mm-ss.log & a more detailed log wwill be saved as logs/yyyy-MM-dd_hh-mm-ss_full.log check it out to see what happens or just scroll in the log Panel to see the logs
7 - The tool now have a tool to batch zipalign/sign in a given folder recursively (this particular will only zipalign/sign no deodex will be made !).
How to use Command line :
Code:
_____________________________________________________________
| Lordroid One Deodexer To Rule'em All v1.20 |
|-----------------------------------------------------------|
| |
| USAGE : |
| java -jar Launcher.jar <source> [OPTIONS] |
|-----------------------------------------------------------|
| <source> can be either |
|-----------------------------------------------------------|
| PATH to System Folder exemple : /path/system |
| OR |
| e : to extract systemFolder directlly from device |
|-----------------------------------------------------------|
| |
| Options : |
|-----------------------------------------------------------|
| c : create a flashabe zip after deodexing the rom |
| z : zipalign every apk after deodexing it |
| s : sign every apk after deodexing |
| h : print this help page |
| please note that options should'nt be separated by spaces |
| |
|-----------------------------------------------------------|
| Exemple : |
|-----------------------------------------------------------|
| java -jar Launcher.jar /path/system zsc |
| this command will deodex and sign and zipalign |
| and then creates a flashable zip file |
| java -jar Launcher.jar e zsc |
| this command will extract and deodex |
| from connected device |
| then sign and zipalign |
| and then creates a flashable zip file |
| |
|-----------------------------------------------------------|
| NOTE : |
|-----------------------------------------------------------|
|extracted systems will be under extracted_system_folders |
|create flashable zip will be under flashable_zips_out |
|-----------------------------------------------------------|
| © Rachid Boudjelida 2016 |
| Software distributed under GPL V3 |
|___________________________________________________________|
Release notes
V1.27
1 - Update es translations
2 - Add hk translations (Traditional Chinese)
3 - Separate tool to create a flashable zip from already dodexed system folder (reffer to manual about this feature)
4 - Adb is now excuted from path if available
5 - New option in settings to choose a custom adb binary
6 - Fix unsquashfs (sony roms ) once and for all hopefully
7 - Some code optimizations
You can also see all the commits here
V1.26
1 - add app-data,vendor,plugin folder to the deodexing process
2 - Update it,es,pt,zh translations
3 - Update flashable zip delete script (no odex leftover)
4 - Update oat2dex ,smali and baksmali built from the latest sources
5 - Some code cleaning and optimizations
You can also see all the commits here
V1.25
1 - add support for auto deodexing apks under /vendor and /plugin
2 - optimize files search and files detection logics
3 - fix a bug with aapt compression method
4 - now the logs are gathered each session in a folder (to help you track logs)
5 - track apk fails and warn if creating flashable zip with apk files
6 - make sure that on fail boot.oat and odex files will not be deleted
You can also see all the commits here
V1.24
1 - add support for ROMs with gzip compressed odex files
2 - add extra support for MIUI Roms and fix problems with their non-standard zip header
3 - add support for .sqsh Roms and latest sony's Roms 6.x
4 - add Italian translations.
5 - UI improvement
6 - better detection for fail tasks and remove abusive logging.
You can also see all the commits here
V1.23
1 . Add auto update feature never miss a new release don't need to surf to get new version it will come right to you and install it self !
2 . More settings have became available ,more will come
3 . Multiple compression method are available now , aapt ,7z or native java J4Zip ,it's always a good thing to have a choice the default is aapt because it is more compatible ,but you can change it to what ever you want
4 . check updates on startups (can be disabled in settings )
5 . MAX heap size can be changed in settings now
6 . Fix bugs reported recently causing OutOfBoundException.
You can also see all the commits here
V1.22
1- Fix bootloops (I made a huge mistake somehow I was copying classes2.dex and classes3.dex to all boot jars after framwork.jar sorry for all the trouble I caused you guys ,big thanks to @wertzPH for his testing and usefull feedbacks )
2- Fix spell mistakes in English and French translations
You can also see all the commits here
V1.21
1 - use aapt to repack apks for better compatibility and better on device performance
2 - work around heap size limitation (Hopefully no OutOfMemoryException will be thrown any more)
3 - Add Portuguese translations thanks to Raphael Mangini
4 - Reduced the HDD io usage by approximately 88% saving at least 1.3 minutes in overall
You can also see all the commits here
V1.20
1 - New Look and Feel using Weblaf
2 - Now the logs are coloured cording to their status info , warning ,error
3 - Fix outOfMemoryException minimum amount of ram needed is 512m
4 - More optimized algorithms
5 - Fix infinite wait screen
6 - Now only apk and jar files are copied to the flashable zip (some devices had bootloops otherwise)
7 - Fix unsquash being reported as success when it has fail.
8 - More Logging to help me track bugs better
V1.10
1 - Fix chosen zip/folder name bug one more time this time fixed for good !
2 - Fix native commands hang (tool freezes with no log error )
3 - Add support for squashfs roms (still in testing but should works as long as you follow the Manual )
V1.01
1 - Fix chosen zip/folder name bug (invalid path name error)
2 - Fix progress frozen on Roms before lollipop
V1.00
1 - Now you can pull system folder directlly from device and deodex it !
2 - Fix the process hang on some windows versions
3 - New settings panel were you can change language and threading options
4 - Now an offline manual is included you can check it out for more info about how to use
5 - New Spanish translations thanks to @pabloc97 (still not full if you wanna help translate contact me )
V0.8-beta3
1 - Now supports odex that have 3 classes files
2 - New feature to create flashable zip from the deodexed system folder
3 - New tool to only batch sign/zipalign (no deodexing)
4 - Now the minimum JRE required is JRE7 or higher (8 is not necessary now)
5 - The full log now contain native commands outputs for a better low level debugging (include it in you bug reports)
V0.7-beta3
1 - Better system folder recognition.
2 - better error logging ,some Errors will prompt the user specially if it is about the system folder validity
3 - now the program handle Roms which have odexed apks under /framework.
4 - a full log will be saved to /logs/*data*_full.log that contains more details send me that log when reporting errors
V0.6-beta2
1 - New command line tool java -jar lordroid-ODTRTA.jar -h for more details
2 - Better detection for already deodexed roms
3 - You can now choose the Max threads to be used !
4 - Code optimized for less HDD IOs may reduce the deodexing time.
5 - better handling of some Exceptions.
6 - you can get ride of the alert pop-up messages after the first appearance.
V0.5-beta1
1 - Please keep in mind this is a beta even though I tested it it might be bugs that I didn't run into.
2 - this version supports all rom versions and all architectures.
3 - The software detects every thing on it's own no actions are needed from the user for that matter.
4 - The software uses two Threads to work no settings is available to change that right now.
Screen Shots
Program in action
Download :
If you like this software consider rating this thread or just click the thanks button (means a lot to me and it's free :good: )
Download Latest version
Build from source
Never wait for for a release ever again !
in order to build you gonna need to have ant 1.7 or higher (any Os as long as you have java and ant)
Let create a folder to put the source code in it
Code:
mkdir deodexer
Code:
git clone https://github.com/lord-ralf-adolf/Lordroid_One_Deodexer_To_Rule_Them_ALL.git deodexer
Code:
cd deodexer
Code:
git pull
Code:
ant
# the tar.gz will be under re-dist folder
Code:
ant release
Code:
ant clean
Bug reports and suggestions:
Open an issue ticket on github or email me at : rachidboudjelida(at)gmail.com or PM me pull request are welcome.
Need quick assistance ? join #lordroid channel on freenode
Source code : https://github.com/lord-ralf-adolf/Lordroid_Universal_Batch_deodexer
Special Thanks :
@testwhat for smaliEX , @JesusFreke for smali/baksmali ,@wertzPH for testing and usefull feedbacks ,@Rapha88 for Portuguese translations , ,@pabloc97
XDA:DevDB Information
Lordroid Batch deodex, Tool/Utility for all devices (see above for details)
Contributors
lord-ralf-adolf
Source Code: Lordroid_Universal_Batch_deodexer
Java docs: LOBDTRTA docs
XDA:DevDB Information
Lordroid One Batch Deodexer To Rule'em All, Tool/Utility for all devices (see above for details)
Contributors
lord-ralf-adolf
Source Code: https://goo.gl/RCWR4l
Version Information
Status: Stable
Current Stable Version: v1.27
Stable Release Date: 2016-04-04
Created 2016-02-11
Last Updated 2016-04-13
Attachments
-
31.1 KB Views: 6,132
-
55.7 KB Views: 5,860
-
28.3 KB Views: 5,990
-
40.5 KB Views: 5,660
-
58.2 KB Views: 5,448
-
65.3 KB Views: 5,372
-
62.9 KB Views: 5,242
-
62.2 KB Views: 5,154
-
18.7 KB Views: 5,088
-
80 KB Views: 5,078
-
79.8 KB Views: 4,972
-
88.7 KB Views: 4,634
-
79.5 KB Views: 4,406
-
69.7 KB Views: 4,360
-
71.2 KB Views: 4,292
-
72.3 KB Views: 4,272
-
8.4 KB Views: 4,148
Last edited: