Pending update 2020xxxx.xx

1. Updated jbart configuration files. Moved to single JSON config.
2. All rom related configs (like deletefiles, apk/hex file lists, etc) now should be placed in repository, not in data directory of jbart.


1. Added option to set Android version for single files processing (sometimes apktool writes default dex 035 to classes files, but this file may come from Android 11 with dex 039). It will write correspondig correct dex version to all classes files.
2. Fixed build.prop processing. Now build.prop values could be found across all found build.prop files in rom (system, vendor, odm, etc.). For searching the device name, Android sdk and version the following order used: vendor/build.prop, then system/build.prop (if no keys found in vendor).


1. Updated UI design
2. Added support to point .prop file to patch (propfile <system/etc/default.prop>;)
3. replaceinsmali now searches in all smali directories (smali, smali_classes2, …, smali_classes87 and so on)
4. In alt_rom_name.conf added support for ....+md5+… - as a result output ROM file name will contain 10 symbols of its md5
5. Hex: Added support for 440dpi resource directories
6. Hex: arrays.xml - replace default values from translation instead of keeping original values
7. Decompiler: added possibility to turn on and off "debug-info" in smali for single file processing
8. Added option to automatically select apktool version to use based on android version (rom processing, not works for single file). It needs config file at settings directory with name rom.apktool.versions.conf with the following content: apktool_2.0.0.jar=6.0 (each such string from the new line)
9. Patcher: fixed directory removing by "move" patch in case if destination directory for this patch does not exists
10. Added rom translation primary mode switch (with two modes: apktool and hex). In apktool mode jbart preffers to translate apk files using selected apktool.jar, and use hex only for those, which are set at the hex.filelist.conf gonfig file. In hex mode jbart preffers to translate apk files using internal hex engine, and use apktool only for those files, which are listen in the apktool.filelist.conf file. These config files (hex.filelist.conf and apktool.filelist.conf) are located at the data/settings directory (will be moved to the translation repository directory soon).
11. Added "apkinjector" command line option to use single file translation with apk injector (hex mode).
12. Hex: Added -night- (-notnight-) resources support.
13. Hex: Added support for replacing original reference type values (@string/xxx, for example) by translation items
14. Hex: Allow to add more array items than in default translation
15. Added new patch for replacing hex strings in files (all files are presented as binary hex files). Example patch:
hexreplace "%rom%/firmware-update/dtbo.img" "776169742C617662" "7761697400000000";
16. Hex: Added support for -land, -port and -square orientation resources
17. Added support for Android Q build.prop keys for device and rom info (, ro.product.system.device, etc.)
18. Added zipalign tool (embedded into .jar file) - on Android 11+ (SDK 30+) all apk files should be aligned with 4-byte boundary


1. Patcher: added anyfile_data_post.conf patching config to patch files after compiling (just before rom building).
2. Hex: Fixed styles.xml patching (via *.part patches).
3. Hex: Fixed issue 203.
4. Deodexer: Added option to turn off deleting files from rom via deletefiles.conf config file.


1. Hex: fixed arrays processing in Android Oreo roms. Added automatically item ID generation in cases when it is not possible to get IDs from resources.arsc.
2. Updated MIUI 8 repositories list.


1. CLI: added logger settings to the CLI (to use with json config: java -jar jbart3h.jar config cli.conf). More info at: cli.conf.example file.
2. Deodexer: added OEM directory support (issue 197).
3. Deodexer: fixed deodexing multidex apk files.
4. Logger: added option to turn on/off file logging (with buffer or direct write).


1. Hex: updated internal framework to Android Oreo (8.1)
2. Hex: fixed freezes on strings and arrays processing (in some cases) met working with apk files from MIUI9 based on Android Oreo.
3. Patcher: fixed some issues with patch processing (build.prop patches, nxt patches)
4. Logger: Updated logging framework. Logs are not written to files by default (to improve performance), added option to turn off logging, and button save log to file (if logging was not turned off)
5. UI: Some improvements to the user interface (dialogs, etc.)


1. Added Apktool 2.3.0 support
2. UI: Added file dialogs localization
3. UI: Increased sizes of dropdown lists, dialogs (
4. Patches: fixed anyfile_data.conf patch appendtofile (issue
5. Patches: patches from anyfile_data.conf now processing line by line as written in config
6. Patches: skipped NXT patches are now written to the log
7. Patches: buildprop_data.conf now is the root configuration file for build.prop file patches. It should contan now ONLY patch "include" lines, for example:
include "%patches_dir%/buildprop/all_devices.ptch"
include "%patches_dir%/buildprop/cancro.ptch"

And inside any .ptch file you can write device line - "device <cancro>;", it means that this patch file is for cancro device only. If no "device" string in the .ptch file, than this patch file will be used for all devices (like NXT patches). For example, only for cancro patch file will be something like this:
device "cancro"; 5.0.2 LRX22G V8.5.2.0.LHNCNED release-keys

8. Patches: build.prop patches now supports lines commenting and deleting: (closing
To comment line use # symbol and section name:
To delete line use - (minus) symbol and section name:
9. Patches: added minus (-) symbol in section names support to build.prop patches (
10. Patches: added smali_classes3 (and more) support to NXT patches (
11. Patches: added android version support to the NXT patches file (like "device"):
device "<"cancro, aries, ido">";
android "<"7.0, 7.1">";

12. Deodexer: Added Android Oreo (8.0, 8.1) support to APIs list (26, 27)
13. Deodexer: delete files from rom before deodex process (files from deletefiles.conf config file)


1. Deodexer: Fixed ignoring /system/vendor/framework folder with "Deodex /system/vendor/*" option turned on.
2. Deodexer: Removed log entry "Android N is not yet supported." - it IS supported now.


1. Deodexer: Deodex Android M+ with smali/baksmali
2. Deodexer: Added option to deodex Android M+ with oat2dex
3. Deodexer: Added option to turn off writing debug information into output smali files (.local, .param, .line, etc.). Only for Android M+
4. Updated smali/baksmali to 2.2.1


1. Patcher: Proceed patches in the order they written in .ptch file
2. Auto convert updater-script line endings to UNIX (LF) style if you edit/patch/copy/move or whatever you do with this file
3. Added "all" directory support to the "arch" directory of the replacements (extra) repository
4. Added "versions" directory support to the translation repository (now you can store your translation xml files in three directories: main, device and versions). Example: REPO/versions/6.0/Settings.apk (like REPO/main/Settings.apk). First applied main translation, then device, the versions.
5. More verbose logging


1. Fixed smali/baksmali version detection mechanism (versions started from 2.2 have other command line parameters, incompatible with older versions)
2. Bug fixes and minor improvements


1. Pro: process all patches in single file mode (ignore «device» directive)
2. Pro: decompile all found classes.dex files from apk/jar (classes2.dex, classes3.dex, etc.)
3. Replace files in rom order: main, versions, arch, device
4. Added "versions" folder support for translation and xml patches repositories
5. Bug fixes and minor improvements


1. Patcher: added patch "movefrom" for the anyfile_data.conf. [movefrom "%rom%/system/priv-app/Browser/Browser.apk" "/lib/armeabi" "%rom%/system/priv-app/Browser/lib/arm";] - this patch will extract from zip (1st parameter, Browser.apk) file (or all files from directory, if directory set) (2nd parameter) to the target directory, set in 3rd parameter and then remove this file or directory (parameter 2) from the zip (1st parameter).
2. Patcher: added patch "deletefrom" for the anyfile_data.conf. [deletefrom "%rom%/system/priv-app/Browser/Browser.apk" "/lib/armeabi";] - this patch will delete file or directory set in 2nd parameter from the zip set in 1st parameter
3. Patcher: added patch "packto" for the anyfile_data.conf. [packto "%rom%/system/priv-app/Browser/Browser.apk" "%here%/com";] - this patch will pack file or directory with all its contents (2nd parameter, directory com) to the target zip file, set in 1st parameter (Browser.apk))
4. Pro: Added ability to filter out drawable directories from the translation by maximum supported dpi in hex mode (dpifilter.conf)
5. Added ability to turn off auto rom zip signing after translation


1. Fixed jbart updater (moved to SSL)
2. Pro: Added ability to sign apk files at the rebuilding stage (compiling) in hex mode (signfiles.conf)
3. Deodexer: Added ability to make a deodexed rom .zip while autodeodexing rom
4. Patcher: added patch "extractfrom" for the anyfile_data.conf (extractfrom "%rom%/system/priv-app/Browser/Browser.apk" "/lib/armeabi" "%rom%/system/priv-app/Browser/lib/arm"; - this patch will extract from zip (1 parameter, Browser.apk) file (or all files from directory, if directory set) (2 parameter) to the target directory, set in 3 parameter)
5. Added CPU arch folders support for the extra repo (in addition to the main, device and versions): directory "arch" with your CPU arch type inside it (from "ro.product.cpu.abi"), then Android version directory (like versions). Example: arch/arm64-v8a/6.0/


1. Patcher: Fixed symlinks following method
2. Patcher: Fixed replaceinsmali patch for directories (search all smali files to patch in specified directory)
3. Process all rom extras at one time - just after rom extraction (before decompiling apk files)
4. Process rom extras at decompile stage
5. Support of batch rom signing
6. Added ability to add commented strings to build.prop (by buildprop_data.conf)
7. Added auto smali/baksmali detector (before and after version 2.2)
8. Added CLI config running option (run jbart in command line with options in configuration file). See docs for more information.
9. Deodexer: do not sign deodexed roms
10. A lot of other fixes and improvements
11. Updated proprietary core

© jBART 2010 - 2019
All rights reserved
Developer Andrei Zhukouski