Skip to content

Releases: perfidanb/JarByteEditor

1.0.2

Choose a tag to compare

@perfidanb perfidanb released this 28 Jun 17:16

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 .apk files and edit classes.dex using 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 .smali and .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 .dex container via a lightweight temporary directory workflow.
image

Fixed

  • Fixed an issue where extracting multiple .dex files simultaneously would cause disk space exhaustion and crash the user's machine.
  • Fixed IndentingWriter dependency mismatch by explicitly utilizing BaksmaliWriter directly for Smali formatting.

1.0.2-Beta

1.0.2-Beta Pre-release
Pre-release

Choose a tag to compare

@perfidanb perfidanb released this 24 Jun 15:06

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 .jar files to your compilation classpath via Project > 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 PrimerDark theme for a sleek, developer-friendly experience.
  • Auto-Scanning libs Folder: The compiler now automatically scans for a libs directory adjacent to your target JAR file to populate the classpath.
  • Save Actions: Added Ctrl+S to compile/assemble the active tab, and Ctrl+Shift+S to save all modified tabs and execute a project export.
image

Changed

  • The bytecode editing engine no longer restricts you to just .jasm. Users can seamlessly switch between .jasm assembly 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

Choose a tag to compare

@perfidanb perfidanb released this 18 Jun 13:14

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 .jasm editor 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, .jasm files, and project.json.
image

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 .class files 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

Choose a tag to compare

@perfidanb perfidanb released this 18 Jun 09:04