Repository navigation
Releases: perfidanb/JarByteEditor
Releases · perfidanb/JarByteEditor
Release list
1.0.2
Changelog
All notable changes to this project will be documented in this file.
[1.0.2] - 2026-06-29
Added
- Android APK & DEX Support: Directly open
.apkfiles and editclasses.dexusing the Smali assembler/disassembler (dexlib2,smali,baksmali). - In-Memory Virtual Tree for Smali: Replaced the disk-heavy Smali extraction logic with an on-the-fly virtual memory mapping. This completely eliminates 100% disk usage errors, prevents OS crashes, and significantly reduces RAM overhead when handling large APKs (gigabyte-scale).
- Dual-Protection Watchdog: Added a background thread that monitors available Disk and RAM during critical operations, automatically terminating processes if resources fall below safe thresholds (Anti-Crash mechanism).
- Floating Search Results Modal: Global searches now open a non-modal popup containing a list of matches.
- Search Line Navigation: Search results in text resources (including
.smaliand.jasm) now compute the exact line number. Double-clicking a search result automatically opens the file and jumps the editor cursor to the correct line. - Auto-Assemble on Export: When exporting/saving an APK, only modified Smali files are patched and re-assembled back into the
.dexcontainer via a lightweight temporary directory workflow.
Fixed
- Fixed an issue where extracting multiple
.dexfiles simultaneously would cause disk space exhaustion and crash the user's machine. - Fixed
IndentingWriterdependency mismatch by explicitly utilizingBaksmaliWriterdirectly for Smali formatting.
1.0.2-Beta
Changelog
All notable changes to this project will be documented in this file.
[1.0.2] - 2026-06-24
Added
- CFR Decompiler Integration: You can now decompile class files into Java source code directly within the editor.
- Live Java Compilation: Edit decompiled Java code and seamlessly compile it back into bytecode with
Ctrl+S. - Compiler Dependency Manager: Easily add extra
.jarfiles to your compilation classpath viaProject > Manage Dependencies. - Multi-Tab Workspace: Introduced a Chrome-style tabbed editor allowing you to work on multiple class or resource files simultaneously without losing state.
- Java Syntax Highlighting: Added a full-fledged highlighting engine for Java syntax when in Java editing mode.
- Modern UI Theme: Completely modernized the user interface with the
AtlantaFX PrimerDarktheme for a sleek, developer-friendly experience. - Auto-Scanning
libsFolder: The compiler now automatically scans for alibsdirectory adjacent to your target JAR file to populate the classpath. - Save Actions: Added
Ctrl+Sto compile/assemble the active tab, andCtrl+Shift+Sto save all modified tabs and execute a project export.
Changed
- The bytecode editing engine no longer restricts you to just
.jasm. Users can seamlessly switch between.jasmassembly and full Java mode. - The global details and constant pool views have been reworked to dynamically sync with the currently active tab.
1.0.1
Changelog
All notable changes to JarByteEditor are documented here.
1.0.1
Added
- Added JavaFX desktop GUI with dark theme, menu bar, toolbar, project tree, editor tabs, status bar, and responsive window scaling.
- Added syntax-highlighted
.jasmeditor for class bytecode using RichTextFX. - Added grouped sidebar with root jar,
classes,files, file-type icons, and sidebar search. - Added Google Translate project workflow using the Google Translate web service on
translate.google.com.vn, without a Cloud Translation API key. - Added translation language selection, progress/log dialog, preview table, per-string checkboxes, and apply-selected behavior.
- Added CLI commands for listing, disassembling, assembling, replacing strings, searching, statistics, diff, and call graph.
- Added export workflow that writes raw classes, resources,
.jasmfiles, andproject.json.
Changed
- Replaced colored toolbar squares with matching vector icons.
- Improved editor colors for a softer dark UI and more readable bytecode tokens.
- Changed JAR opening to lazy-load entries instead of reading every file into memory immediately.
- Changed class rendering so
.classfiles are only disassembled when the user selects a class. - Changed translation scanning to process entries one by one and avoid caching untouched class bytes in memory.
- Changed project statistics/call graph behavior in the GUI to avoid automatic deep parsing after opening large jars.
- Changed Find and Replace workflows to run in background tasks so the GUI stays responsive.
- Changed Save As JAR to stream unchanged entries from the source jar when possible.
Fixed
- Fixed UI freezing risk when opening jars with many classes.
- Fixed large text/class preview by disabling unsafe inline editing and showing safe metadata/sample content.
- Fixed expensive SHA1 calculation for large lazy entries by deferring hash generation until needed.
Tests
- Added translation tests for resource and class string replacement.
- Added lazy-load tests to verify large entries are not loaded during open/save.
- Added lazy translation scan test to verify class scan does not cache untouched class bytes.
1.0.0
Full Changelog: https://github.com/perfidanb/JarByteEditor/commits/1.0.0