Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
543 commits
Select commit Hold shift + click to select a range
88ae27a
Cleanup TabComponent Close Pane
Konloch Sep 26, 2024
ec67ba8
Prevent NPE on classFileContainer during markOccurrences
Konloch Sep 26, 2024
d811272
Catch Thrown Exceptions During Parsing Failure
Konloch Sep 26, 2024
6bfe74f
Start Of Middle-Click Close
Konloch Sep 26, 2024
c85a8a2
Update Build Tool Plugins
Konloch Sep 26, 2024
fda1eca
Code Style Update
Konloch Sep 26, 2024
0e7bd2b
Code Style Update
Konloch Sep 26, 2024
58abfef
Added .editorconfig
Konloch Sep 26, 2024
d307f56
Added Checkstyle
Konloch Sep 26, 2024
515495e
Implement Checkstyle
Konloch Sep 26, 2024
f59823b
Code Style Update / Cleanup / Repackaging
Konloch Sep 26, 2024
dd7e605
Add xapk extension in SUPPORTED_FILE_EXTENSIONS
cloudchamb3r Sep 27, 2024
89df1bb
Merge pull request #514 from cloudchamb3r/fix/missing-xapk-in-file-di…
Konloch Sep 27, 2024
0a74b31
Merge branch 'master' of https://github.com/Konloch/bytecode-viewer
Konloch Sep 27, 2024
ddd31b5
Code Style Cleanup
Konloch Sep 27, 2024
89a2640
Continue Decompiling On Parsing Error
Konloch Sep 27, 2024
9922ec3
Continue Decompiling On Any Parsing Errors (Except IO)
Konloch Sep 27, 2024
5eed22d
Move From CLI Magic Numbers
Konloch Sep 27, 2024
a028bba
Repackage CLI
Konloch Sep 27, 2024
3ab9932
Update Licenses
Konloch Sep 27, 2024
9353c96
Code Style Cleanup / General Code Improvements
Konloch Sep 27, 2024
bfdab8a
Middle-click to close tabs.
Bl3nd Sep 27, 2024
2b70b56
Merge branch 'Konloch:master' into master
Bl3nd Sep 27, 2024
4597dbe
Add null-check for converting event just to be safe.
Bl3nd Sep 27, 2024
c90854c
Merge remote-tracking branch 'origin/master'
Bl3nd Sep 27, 2024
1557cd6
Merge pull request #515 from Bl3nd/master
Konloch Sep 27, 2024
c3841a8
Do not parse if the decompiler used prints out disassembly/bytecode.
Bl3nd Sep 27, 2024
d76644e
Remove adding class reference when it's a "this." expression.
Bl3nd Sep 27, 2024
9ce2b22
Remove anonymous class body ConstructorDeclaration from being parsed.
Bl3nd Sep 28, 2024
d642610
Clean-up
Bl3nd Sep 28, 2024
95eeee0
Merge pull request #516 from Bl3nd/go-to-enhancement
Konloch Sep 29, 2024
784e849
Update Editor Config
Konloch Sep 29, 2024
5f32dff
Run Temporary Plugins
Konloch Sep 29, 2024
95da665
Is JS Engine In Classpath Check
Konloch Sep 29, 2024
5e4d411
Hide Create New JS Plugin If No JS Engine On Classpath
Konloch Sep 29, 2024
cd59dd5
Update English Strings
Konloch Sep 29, 2024
c7dd1be
Syntax Fixes
Konloch Sep 29, 2024
8c9fe29
Better Looking Search Elements
Konloch Sep 29, 2024
269aed2
Cleanup
Konloch Sep 29, 2024
d0b075c
Added GetLastActiveClass
Konloch Sep 29, 2024
62ade7c
Added #472 as External Plugin
Konloch Sep 29, 2024
78a41f5
Cleanup
Konloch Sep 29, 2024
0e38947
Syntax Cleanup
Konloch Sep 29, 2024
70847bc
Revert Token Maker & Exclude In Checkstyle
Konloch Sep 29, 2024
91707fc
Fix Compilation
Konloch Sep 30, 2024
c53d4e9
API Update
Konloch Sep 30, 2024
9b53a74
Code Cleanup
Konloch Sep 30, 2024
88b2c7f
Alert Instead of NPE
Konloch Sep 30, 2024
fb82558
Comment Suppression
Konloch Sep 30, 2024
5dab52b
Code Cleanup
Konloch Sep 30, 2024
c29f0fb
Fix NPE on System Theme
Konloch Sep 30, 2024
805dac8
Better Plugin Writing
Konloch Sep 30, 2024
a0adb9b
Added Task Manager for Background Tasks
Konloch Sep 30, 2024
d343bce
Implemented Task Manager API
Konloch Sep 30, 2024
8b84ae7
Better Synchronization Between On-Disk Editing and In-Memory Editing
Konloch Sep 30, 2024
d78ab84
Update README
Konloch Sep 30, 2024
133526c
Partial Fix For Slow jFileChooser
Konloch Sep 30, 2024
efcbaed
Show Exceptions To Users If It Cancels Their Action
Konloch Sep 30, 2024
ed7865c
Update README.md
Konloch Oct 1, 2024
dac4cee
Fix Change Class File Versions Plugin 'Cancel' Option
Konloch Oct 2, 2024
c713a20
Cleanup
Konloch Oct 2, 2024
938ee3f
Syntax Cleanup
Konloch Oct 2, 2024
406b47b
Use SleepUtil API
Konloch Oct 2, 2024
fb075c8
Syntax Cleanup
Konloch Oct 2, 2024
f5c7cd7
Added Author Tag
Konloch Oct 2, 2024
efcbfc4
Code Cleanup
Konloch Oct 2, 2024
88b9844
InternalCompiler Renamed To AbstractCompiler
Konloch Oct 2, 2024
22e008c
InternalDecompiler Renamed To AbstractDecompiler
Konloch Oct 2, 2024
88aa5a9
New Abstract Decompiler API
Konloch Oct 2, 2024
ff4432f
ASMifier Shouldn't Parse
Konloch Oct 2, 2024
269905d
Editor Config Update
Konloch Oct 2, 2024
250f55c
Code Cleanup
Konloch Oct 2, 2024
87fac67
Added Google Java Format
Konloch Oct 2, 2024
78f61f6
Pom Cleanup
Konloch Oct 2, 2024
13510e3
Update Google Java Format Version
Konloch Oct 2, 2024
3158e83
Format ASMifier
Konloch Oct 2, 2024
9f24455
Pom Cleanup
Konloch Oct 2, 2024
2722b70
Added More Licenses
Konloch Oct 2, 2024
921e6e1
Added Update Warning
Konloch Oct 2, 2024
17e128b
POM Cleanup
Konloch Oct 2, 2024
66b3822
Use Background Thread For Async Saving
Konloch Oct 2, 2024
7e15a9e
Downgrade Java Formatter
Konloch Oct 2, 2024
182d64d
Start Of CLI Rewrite
Konloch Oct 2, 2024
e6f9f16
Fixed Opening Files From Launch Args
Konloch Oct 2, 2024
64de20a
English Command Replaced With Language Command
Konloch Oct 2, 2024
ba0411c
Fix Language Changing
Konloch Oct 2, 2024
a5f0aed
Strict CLI
Konloch Oct 2, 2024
d4a528e
CLI Cleanup
Konloch Oct 2, 2024
32b6f4e
Started New TempFiles API
Konloch Oct 2, 2024
8301a58
Fix getUniqueName
Konloch Oct 2, 2024
5a3820b
Update Procyon Decompiler To New TempFIles API
Konloch Oct 2, 2024
6781473
Better TempFile API
Konloch Oct 2, 2024
626b856
Better Procyon Decompiling
Konloch Oct 2, 2024
e191532
Continued Temp File API
Konloch Oct 2, 2024
b65aad2
Procyon Delete Temporary Files
Konloch Oct 2, 2024
99e4973
Procyon Fixes
Konloch Oct 2, 2024
5ab1fe0
Temp File API Improvements
Konloch Oct 2, 2024
96495c8
Extended Temp File API
Konloch Oct 2, 2024
b69389c
FernFlower Decompiler Changes
Konloch Oct 2, 2024
17e1d62
Cleanup On Decompiler Failure
Konloch Oct 2, 2024
03d74f3
FernFlower Decompiler Refactoring
Konloch Oct 2, 2024
f121870
Procyon Refactoring
Konloch Oct 2, 2024
be2afd4
FernFlower Temp Files API Fix
Konloch Oct 2, 2024
36e6dbf
FernFlower Decompiler Improvements
Konloch Oct 2, 2024
45d722c
FernFlower Catch All
Konloch Oct 2, 2024
3f45802
Procyon Ensure Cleanup
Konloch Oct 2, 2024
7fa7978
JavaP Disassembler Improvements
Konloch Oct 2, 2024
3f407ea
Cleanup
Konloch Oct 2, 2024
334a923
Temp File API Improvements
Konloch Oct 2, 2024
ac025d6
Comments
Konloch Oct 2, 2024
23c125c
JavaP Cleanup
Konloch Oct 2, 2024
95da798
Handle Deleting Folders Better
Konloch Oct 2, 2024
1a5f3fd
JD-GUI Decompiler Improvements
Konloch Oct 2, 2024
e176363
Text Formatting Error
Konloch Oct 2, 2024
f20cdee
Created Exception Utils
Konloch Oct 2, 2024
124fa19
Cleanup Procyon Exceptions
Konloch Oct 2, 2024
a826a8e
Cleanup JD-GUI Exceptions
Konloch Oct 2, 2024
ab2ce70
Cleanup Javap Exceptions
Konloch Oct 2, 2024
8d947b6
Cleanup FernFlower Exceptions
Konloch Oct 2, 2024
a9beeee
Fix Collision Prevention
Konloch Oct 2, 2024
e456952
ZipUtils Cleanup
Konloch Oct 2, 2024
70bde7b
Added Process Utils
Konloch Oct 2, 2024
efb43e6
Silence IO Errors
Konloch Oct 2, 2024
838e40f
FernFlower Exception Cleanup
Konloch Oct 2, 2024
38920b9
Procyon Decompiler Cleanup
Konloch Oct 2, 2024
522ea37
Added Decompiler Simulated Errors
Konloch Oct 2, 2024
97a1425
Code Cleanup
Konloch Oct 2, 2024
f842eca
Added Dev Mode Translation
Konloch Oct 2, 2024
98bacf8
Temporary File API Update
Konloch Oct 2, 2024
2ade8f9
Process Utils API Update
Konloch Oct 2, 2024
7105cf9
Comments
Konloch Oct 2, 2024
ce2d2cd
Abstract Decompiler API Update
Konloch Oct 2, 2024
d398854
Smali Disassembler Error Formatting
Konloch Oct 2, 2024
b9ff7d1
Abstract Decompiler API Update
Konloch Oct 2, 2024
ceeae58
DEV_FLAG Warning
Konloch Oct 2, 2024
9391352
ASMifier Cleanup
Konloch Oct 2, 2024
f94c03d
ASM Disassembler
Konloch Oct 2, 2024
dc6e157
Decompiler Name Adjustments
Konloch Oct 2, 2024
7f5360c
Comments
Konloch Oct 2, 2024
0db6dcb
Decompiler Name Adjustments
Konloch Oct 2, 2024
995c0ff
Better Decompiler API Usage
Konloch Oct 2, 2024
aff69c2
Merged The Two ASMifier Disassemblers
Konloch Oct 2, 2024
45bf02e
Bytecode Disassembler Updates
Konloch Oct 2, 2024
1d5d0bc
CFR Decompiler Updates
Konloch Oct 2, 2024
f89ba2e
Started POC for External Decompiler Processes
Konloch Oct 3, 2024
39491c3
FernFlower Decompiler Update
Konloch Oct 3, 2024
a9dc390
FernFlower Zip Decompiler Fallback
Konloch Oct 3, 2024
ed59212
Added Decompiles Cleanup Flag
Konloch Oct 3, 2024
5bac732
Temp File API Update
Konloch Oct 3, 2024
a625c39
Start of Decompilers Automatically Reformatting Syntax
Konloch Oct 3, 2024
b100479
Added Blank Decompiler Base
Konloch Oct 3, 2024
a094e52
JADX Decompiler Update
Konloch Oct 3, 2024
e029c73
JavaP Disassembler Update
Konloch Oct 3, 2024
edd09c0
JavaP Added Simulated Errors
Konloch Oct 3, 2024
1ac293c
Procyon Decompiler Update
Konloch Oct 3, 2024
136346d
Krakatau Decompiler Update
Konloch Oct 3, 2024
f749603
JD-GUi Decompiler Update
Konloch Oct 3, 2024
2611145
Krakatau Disassembler Simulated Errors
Konloch Oct 3, 2024
5398cda
Cleanup
Konloch Oct 3, 2024
b36c67f
CLI Clean Banner
Konloch Oct 3, 2024
59f45e5
Show Generated Xposed Class In GUI
Konloch Oct 3, 2024
1f13c21
External Plugin Cleanup / Fixes
Konloch Oct 3, 2024
ec47a2d
Switch from using StaticJavaParser to JavaParser so we can handle if …
Bl3nd Oct 3, 2024
a9cbd66
Update JavaParser version
Bl3nd Oct 3, 2024
82789aa
Make methods look for the same method that has the same signature rat…
Bl3nd Oct 3, 2024
340bec4
Attempt at making the code more understandable and a few other things.
Bl3nd Oct 3, 2024
336d60b
Add the possibility that a class does not have a package.
Bl3nd Oct 4, 2024
17d9736
Added Disk-Lib
Konloch Oct 4, 2024
1494eca
Replaced Old Disk-Lib Library
Konloch Oct 5, 2024
998183a
Remove Old Disk Lib Classfiles
Konloch Oct 5, 2024
5cf85f7
Better Deprecated Settings Writing
Konloch Oct 5, 2024
cf92749
Syntax Cleanup
Konloch Oct 5, 2024
471ae44
saveAsJar Should Throw Exceptions
Konloch Oct 5, 2024
29d29e1
Add ability to open class files even when they don't have a package
Bl3nd Oct 5, 2024
14c7ed2
Merge pull request #517 from Bl3nd/go-to-enhancement
Konloch Oct 6, 2024
879b5e6
Fix NPE
Konloch Oct 7, 2024
3f1fd5a
Merge branch 'master' of https://github.com/Konloch/bytecode-viewer
Konloch Oct 7, 2024
d485b9b
Remove error strip markers if you click on an empty line.
Bl3nd Oct 7, 2024
f560fa5
Update a few try-catch's to catch all exceptions.
Bl3nd Oct 7, 2024
9860c9d
Merge branch 'Konloch:master' into go-to-enhancement
Bl3nd Oct 7, 2024
edadceb
Merge pull request #521 from Bl3nd/go-to-enhancement
Konloch Oct 8, 2024
05fa036
Add/Re-add field parsing when scope is from a parameter or variable.
Bl3nd Oct 8, 2024
289d196
Merge remote-tracking branch 'origin/go-to-enhancement' into go-to-en…
Bl3nd Oct 8, 2024
bc67379
Merge branch 'Konloch:master' into go-to-enhancement
Bl3nd Oct 8, 2024
73e9631
Add one more field and method parsing cases
Bl3nd Oct 10, 2024
b0af907
Catch and print any exception during the parse sequence.
Bl3nd Oct 11, 2024
c4ae849
Fix clicking on ErrorStrip brings cursor to the top no matter where y…
Bl3nd Oct 12, 2024
789ceda
A few parser things
Bl3nd Oct 13, 2024
164843a
Update GoToAction
Bl3nd Oct 13, 2024
0c47d5c
Allow FernFlower to know of any inner classes (if it's enabled) so th…
Bl3nd Oct 14, 2024
5291651
Add parsing for things that are not in a method or class declaration.
Bl3nd Oct 17, 2024
a5f3153
Fix JDGUI not finding/decompiling inner classes.
Bl3nd Oct 17, 2024
756c823
[JDGUI] Make sure we do not add the opened class into the inner class…
Bl3nd Oct 18, 2024
00340ec
Remove test field on FernFlowerDecompiler generateMainMethod
Bl3nd Oct 18, 2024
9356ebf
Print error message if an exception is thrown for FieldAccessParser
Bl3nd Oct 18, 2024
5f8fd42
Merge pull request #522 from Bl3nd/go-to-enhancement
Konloch Oct 18, 2024
94c52f4
Version Bump
Konloch Dec 31, 2024
575145e
Removed the check for packages that start with "java", "javax", etc.
Bl3nd Jan 8, 2025
dc5945a
Merge pull request #525 from Bl3nd/master
Konloch Jan 9, 2025
e0e8bfa
Add Option to disable Resource Reload Confimation
heisluft Jan 27, 2025
b8e9e73
Fix for issue #529.
Bl3nd Feb 16, 2025
1f09e90
Merge branch 'Konloch:master' into bcv-issue-529
Bl3nd Feb 16, 2025
856f30b
Merge pull request #530 from Bl3nd/bcv-issue-529
Konloch Feb 16, 2025
88e6005
speed up the resource file tree generation
oraveczandrew Feb 27, 2025
5abb8c9
fix ArrayIndexOutOfBoundsException in FileHeaderUtils
oraveczandrew Oct 17, 2024
5c0096a
optimize out zipping/decompression when using Dex2Jar
oraveczandrew Feb 28, 2025
d8907ca
skip jar compression & decompression when decoding resources, run apk…
oraveczandrew Feb 28, 2025
9c866ec
Merge pull request #533 from oraveczandrew/file-header-utils-fix
Konloch Feb 28, 2025
8708506
Merge pull request #536 from oraveczandrew/resources
Konloch Feb 28, 2025
7eef70a
Merge pull request #534 from oraveczandrew/resource-list
Konloch Mar 1, 2025
98e5dbb
Merge pull request #535 from oraveczandrew/dex2jar-opt
Konloch Mar 1, 2025
a626bc4
Merge pull request #527 from heisluft/no-reload-warn-cfg
Konloch Mar 1, 2025
a355a61
skip iterating over method nodes, if search fields are empty
oraveczandrew Mar 9, 2025
ddf39d8
fix ClassFileContainer.getName
oraveczandrew Feb 28, 2025
9123064
use the same class name format for tabs
oraveczandrew Mar 9, 2025
5f92c49
Merge pull request #538 from oraveczandrew/classfilecontainer-fix
Konloch Mar 9, 2025
fb35f03
v2.13.1
Konloch Apr 17, 2025
6ae8d8f
use the native menubar on MacOS
oraveczandrew Apr 21, 2025
6d823ba
Merge pull request #540 from oraveczandrew/native-mac-os-menu-bar
Konloch Apr 26, 2025
6f3acd6
Adequate Russian translation, finally
lustman May 11, 2025
4ebaf7d
tiny fix
lustman May 11, 2025
19be597
.
lustman May 11, 2025
e03a2f7
.
lustman May 11, 2025
04318e3
.
lustman May 11, 2025
e8e5521
Merge pull request #541 from lustman/better-russian-translation
Konloch May 11, 2025
ad61ea6
Binary viewer library update
hajdam May 13, 2025
5bb4343
Merge pull request #542 from hajdam/bined-library-update
Konloch May 14, 2025
0723397
Obfuscator removed.
lustman Jun 10, 2025
903ac6a
Merge pull request #546 from lustman/obfuscator-feature-removed
Konloch Jun 10, 2025
3209051
These usages break text direction, switching to right-to-left (RTL) i…
CyberGhost13337 Jul 3, 2025
a1063ac
Merge pull request #550 from CyberGhost13337/master
Konloch Aug 13, 2025
66d4b61
build: add Java 25 LTS
SoKnight Oct 5, 2025
10206dd
build: update asm to 9.9
SoKnight Oct 5, 2025
2308ef0
build: add `workflow_dispatch` trigger
SoKnight Oct 5, 2025
40ec388
Merge pull request #555 from SoKnight/support-java-24-26
Konloch Oct 6, 2025
a5a0f36
Merge pull request #556 from SoKnight/build-bcv-runnable-manually
Konloch Oct 6, 2025
282ca11
Add missing translation key in English and German
ThexXTURBOXx Dec 24, 2025
ef43677
Update dependencies
ThexXTURBOXx Dec 24, 2025
5acfe7a
Update Maven plugins
ThexXTURBOXx Dec 24, 2025
fdd8ff3
Remove deprecations
ThexXTURBOXx Dec 24, 2025
3390ac7
Merge pull request #566 from ThexXTURBOXx/master
Konloch Dec 24, 2025
7f32f3b
Version Bump
Konloch Dec 29, 2025
e36a3d2
Fix #563
Konloch Dec 30, 2025
591486f
Update APK Tool API (Fixes #567)
Konloch Jan 6, 2026
02b58ae
Fix APK Decoded Resources Folder On Windows
Konloch Jan 6, 2026
15a2b4d
Version Bump
Konloch Jan 6, 2026
aab9a9e
Fix Dex2Jar Classfiles Incorrectly Showing On Windows
Konloch Jan 6, 2026
80599d9
2.13.2
Konloch Jan 6, 2026
074b222
Add File-Type apkm Support Support
Konloch Jan 6, 2026
df09e1d
More APK Container File-Types
Konloch Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 24 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
root = true

[*]
indent_style = space
indent_size = 4
tab_width = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.java]
max_line_length = 120
ij_java_class_brace_style = next_line
ij_java_method_brace_style = next_line
ij_java_block_brace_style = next_line

[*.xml]
indent_size = 4
tab_width = 4

[*.properties]
indent_size = 4
tab_width = 4
16 changes: 9 additions & 7 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,33 @@ on:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
java: [ '8', '11', '17-ea' ] # LTS versions
java: [ '8', '11', '17', '21', '25' ] # LTS versions

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Extract Maven project version
run: echo ::set-output name=version::$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
run: echo "bcv_version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
id: project
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
if: ${{ matrix.java == '8' }}
with:
name: Bytecode-Viewer-${{ steps.project.outputs.version }}-SNAPSHOT
path: target/Bytecode-Viewer-${{ steps.project.outputs.version }}.jar
name: Bytecode-Viewer-${{ env.bcv_version }}-SNAPSHOT
path: target/Bytecode-Viewer-${{ env.bcv_version }}.jar
retention-days: 90
28 changes: 1 addition & 27 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -645,30 +645,4 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

Bytecode Viewer(BCV) Copyright (C) 2014 Kalen "Konloch" Kinloch - http://bytecodeviewer.com - http://the.bytecode.club
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
along with this program. If not, see <http://www.gnu.org/licenses/>.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,21 @@
Bytecode Viewer - a lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More.

#### New Features
* Dark mode with multiple themes
* Jump to Declaration
* Draggable tabs
* Patched [CVE-2022-21675](https://github.com/Konloch/bytecode-viewer/security/advisories/GHSA-3wq9-j4fc-4wmc) (Make sure to upgrade to v2.11.X)
* Dark mode by default with multiple themes
* Translated into over 30 languages including: Arabic, German, Japanese, Mandarin, Russian, Spanish
* Plugin Writer - create and edit external plugins from within BCV
* Fixed Java & Bytecode editing/compiling
* Tabbed plugin console
* Right-click menus on the resource and search panels
* Javap disassembler
* XAPK support
* Updated nearly all dependencies (incl. decompilers like CFR, JD-GUI etc.)
* Updated ASM library to version 9.1
* Latest dependencies (incl. decompilers like CFR, JD-GUI etc.)
* Added support to Java files compiled using JDK > 13
* Migrated to Maven

#### v2.10.x Notes
* The rewrite/refactoring process is currently ongoing so please report any bugs you find
* If you're encountering any issues try using [v2.9.22](https://github.com/Konloch/bytecode-viewer/releases/tag/v2.9.22)

#### Links
* [BCV Discord](https://discord.gg/aexsYpfMEf)
* [Website](https://bytecodeviewer.com)
Expand All @@ -34,7 +32,7 @@ Bytecode Viewer - a lightweight user-friendly Java/Android Bytecode Viewer, Deco

#### Key Features
* Simply drag and drop to decompile and search Java Jars & Android APKs
* File format support for: Class, Jar, XAPK, APK, DEX, WAR, JSP, Image Resources, Text Resources & More
* File format support for: Class, Jar, APK, DEX, XAPK, APKM, WAR, JSP, Image Resources, Text Resources & More
* 6 Built-in Java decompilers: Krakatau, CFR, Procyon, FernFlower, JADX, JD-GUI
* 3 Built-in Bytecode disassemblers, including 2 assemblers: Krakatau and Smali/BakSmali
* APK/DEX Support from Dex2Jar and Enjarify
Expand Down Expand Up @@ -77,7 +75,7 @@ Download the latest version from https://github.com/konloch/bytecode-viewer/rele
You may need to execute it via command line ```java -jar Bytecode-Viewer-2.10.x.jar``` (replace the X with the current minor version)

## How can I use BCV?
* Starting with a Jar, Zip, ClassFile or Android file (APK, DEX, XAPK, etc) drag it into BCV. It will start the decoding process automatically.
* Starting with a Jar, Zip, ClassFile or Android file (APK, DEX, XAPK, APKM, etc) drag it into BCV. It will start the decoding process automatically.
* From here you can select the decompilers you would like to use by selecting the View Pane>View 1, View 2, View 3, etc.
* The view panes are-used to display up to 3 decompilers side by side, you can also toggle edibility here.
* Select the resource you would like to open by navigating using the resource list, BCV will do its best to display it (Decompiling, Disassembling, etc).
Expand All @@ -98,6 +96,9 @@ Just clone this repo and run ``mvn package``. It's that simple!

Open the Maven project (e.g. in IntelliJ, open the ``pom.xml`` as a project file).

## UI Is Lagging
Change the theme to your systems. Go into `View->Visual Settings->Window Theme` and select `System Theme`.

## Java Heap Space Issues (java.lang.OutOfMemoryError)
Start BCV with more RAM, e.g. `java -Xmx3G -jar BCV.jar`

Expand Down
9 changes: 9 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Security Policy

## Supported Versions

All versions of BCV are actively supported for security patches & updates.

## Reporting a Vulnerability

E-Mail konloch@gmail.com if you find any issues.
115 changes: 115 additions & 0 deletions checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--
Checkstyle configuration customized for my code style preferences.

This configuration enforces the following:
- Proper indentation (4 spaces)
- No unnecessary trailing spaces
- Maximum line length of 120 characters
- Consistent brace style (Allman)
- Proper whitespace usage
- Enforcement of basic Java best practices without adhering strictly to official conventions.
-->

<module name="Checker">

<module name="SuppressionFilter">
<property name="file" value="checkstyle_suppression.xml" />
</module>

<property name="severity" value="error"/>
<property name="fileExtensions" value="java, properties, xml"/>

<!-- Exclude module-info.java files as they are not needed for validation -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module-info\.java$"/>
</module>

<!-- Ensure files end with a newline -->
<module name="NewlineAtEndOfFile"/>

<!-- Enforce maximum file length -->
<module name="FileLength"/>

<!-- Maximum line length set to 150 characters -->
<module name="LineLength">
<property name="max" value="150"/>
</module>

<!-- Disallow tab characters, enforce 4-space indentation -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>

<module name="TreeWalker">
<!-- Enforce brace style (K&R), which starts a block on the same line as the control statement -->
<module name="LeftCurly">
<property name="option" value="nl"/>
</module>
<module name="RightCurly">
<property name="option" value="alone"/>
</module>

<!-- Enforce indentation -->
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="4"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="4"/>
</module>

<!-- Enforce no empty blocks without comments -->
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>

<!-- Suppression via comments -->
<module name="SuppressionCommentFilter"/>

<!-- No unused imports -->
<module name="UnusedImports"/>

<!-- Checks for naming conventions -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>

<!-- Enforce spacing around operators -->
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
</module>

<!-- Additional whitespace rules to avoid inconsistent formatting -->
<module name="WhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="ParenPad"/>

<!-- Ensure a blank line exists between class definitions and members -->
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true"/>
</module>

<!-- No multiple variable declarations in a single line -->
<module name="MultipleVariableDeclarations"/>

<!-- Ensure proper method design and code clarity -->
<module name="FinalClass"/>
</module>
</module>
9 changes: 9 additions & 0 deletions checkstyle_suppression.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
<suppress files="JavaBytecodeTokenMaker\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>
24 changes: 12 additions & 12 deletions install/launch4j_config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,35 +14,35 @@
<lib>w32api/libshell32.a</lib>
<jar>H:\Repo\BCV\bytecode-viewer\BytecodeViewer 2.9.8.jar</jar>
<outfile>H:\Repo\BCV\bytecode-viewer\BytecodeViewer.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<errTitle/>
<cmdLine/>
<chdir>.</chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<downloadUrl>https://java.com/de/download/</downloadUrl>
<supportUrl/>
<stayAlive>false</stayAlive>
<restartOnCrash>false</restartOnCrash>
<manifest></manifest>
<manifest/>
<icon>H:\Repo\BCV\bytecode-viewer\BCV Icon.ico</icon>
<jre>
<path></path>
<path/>
<bundledJre64Bit>false</bundledJre64Bit>
<bundledJreAsFallback>false</bundledJreAsFallback>
<minVersion>1.7.0_00</minVersion>
<maxVersion></maxVersion>
<maxVersion/>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
<versionInfo>
<fileVersion>0.2.9.7</fileVersion>
<txtFileVersion>http://the.bytecode.club</txtFileVersion>
<txtFileVersion>https://the.bytecode.club/</txtFileVersion>
<fileDescription>Bytecode Viewer</fileDescription>
<copyright>http://bytecodeviewer.com</copyright>
<copyright>https://bytecodeviewer.com/</copyright>
<productVersion>0.2.9.6</productVersion>
<txtProductVersion>http://the.bytecode.club</txtProductVersion>
<txtProductVersion>https://the.bytecode.club/</txtProductVersion>
<productName>Bytecode Viewer</productName>
<companyName></companyName>
<companyName/>
<internalName>BCV</internalName>
<originalFilename>Bytecode_Viewer.exe</originalFilename>
</versionInfo>
</launch4jConfig>
</launch4jConfig>
Binary file not shown.

This file was deleted.

This file was deleted.

8 changes: 0 additions & 8 deletions libs/org/apktool/apktool-cli/2.6.0/apktool-cli-2.6.0.pom

This file was deleted.

This file was deleted.

This file was deleted.

12 changes: 0 additions & 12 deletions libs/org/apktool/apktool-cli/maven-metadata.xml

This file was deleted.

1 change: 0 additions & 1 deletion libs/org/apktool/apktool-cli/maven-metadata.xml.md5

This file was deleted.

1 change: 0 additions & 1 deletion libs/org/apktool/apktool-cli/maven-metadata.xml.sha1

This file was deleted.

14 changes: 0 additions & 14 deletions plugins/Skeleton.gy

This file was deleted.

Loading