Commit Graph

789 Commits

Author SHA1 Message Date
Andrei Kudryavtsev
b85900aa3d
feat: move AAB support to separate plugin (PR #2165)
* wip: finished with factories

* wip: bundleconfig.pb

* wip: jadx-aab-input, separate BundleConfig parser

* wip: removed test apks

* wip: proto xml pretty print

* wip: fixed getNamedValues NPE

* minor fixes

* spotless

* enabled zip64 for gui shadow jar

* spotless

* spotless

* reverted manifest identification since signature parsing not working at the moment

* replace static methods with new API methods

---------

Co-authored-by: Skylot <118523+skylot@users.noreply.github.com>
2024-04-26 21:54:54 +01:00
Jan S
37a42d1418
fix(gui): show correct content of binary resources in hex view (#2160) (PR #2166) 2024-04-24 19:29:52 +01:00
Jan S
07dde05337
fix(build): configure launch4j to not change current directory (#2162) (PR #2163) 2024-04-24 18:52:08 +01:00
Skylot
bc70f8eabb
fix: use correct new line string for simple code writer 2024-04-20 17:37:45 +01:00
Skylot
be25cbf8c2
fix: use common parser for manifest, verify app package 2024-04-20 17:37:45 +01:00
Skylot
f9c0cad146
chore: update dependencies 2024-04-19 20:14:25 +01:00
Skylot
ec9244a635
fix(gui): use common code for manifest parsing in debugger 2024-04-19 20:14:25 +01:00
omerfarukkykc
a5bd64461d
fix(gui): remember selected device in debugger (PR #2153)
* ADBDialog->launchApp() if multiple devices presented should let user select the one they desire.

* compare objects directly instead parsing

---------

Co-authored-by: Ömer Faruk KAYIKCI <omer.kayikci@tubitak.gov.tr>
Co-authored-by: Skylot <118523+skylot@users.noreply.github.com>
2024-04-19 19:02:12 +01:00
Skylot
6aab8fabc9
chore: update dependencies 2024-04-11 23:07:41 +03:00
JustFor
665c1e57d2
fix(gui): update Messages_zh_CN.properties (PR #2146)
Sync new Jadx text.
2024-04-09 22:11:24 +01:00
Skylot
6e8affcbdc
feat: add options to JadxArgs to change code new line and indent (#1945, #1948) 2024-04-08 21:51:24 +01:00
Skylot
dbadbb01fc
refactor: rename method collectArgsWithoutLoading into collectArgNodes in MethodNode (#2142) 2024-04-07 23:09:02 +01:00
Skylot
0f52077c5c
feat: allow to set style for code comments (#2145) 2024-04-07 23:06:32 +01:00
Skylot
8f969d4e89
chore: update gradle and dependencies 2024-04-03 21:03:48 +01:00
Skylot
ecdc4e6757
refactor: move constant collection into separate pass (#2119) 2024-03-30 21:51:02 +00:00
xnumad
6b4976c593
fix(gui): handle paths where file name is null (#2136)(PR #2137)
* fix: Ignore invalid files

Avoid NullPointerException when using "Open files" or drag-n-drop

* refactor: Replace Stream API chain with loop

IntelliJ

* fix: Ignore invalid files

Avoid NullPointerException when using "Add files"

* fix: Fall back to complete path string

Instead of empty project name

* fix: Render tree

Project tree (sidebar) didn’t load
Toggling "View > Show flatten packages" threw a NPE here

* fix code formatting

---------

Co-authored-by: Skylot <skylot@gmail.com>
2024-03-29 22:30:01 +00:00
Skylot
463d2b90fa
fix: don't apply node positions and prevent eager loading for custom decompile modes (#2116) 2024-03-19 20:23:04 +00:00
Skylot
49d2b34d84
chore: update dependencies 2024-03-16 21:58:00 +03:00
JustFor
8760b4ddde
fix(gui): copy strings without quotes (PR #2121)
* Update AbstractCodeArea.java

In general, we need data, not text in code. But now every time you copy the highlighted text, you copy the highlighted quotes as well. This often results in an extra need to delete the quotation marks around the sides, which is confusing.
Now when copying selected highlighted text, quotes are not copied in.

* Update AbstractCodeArea.java

fix code format

* additional checks, move to common method

---------

Co-authored-by: Skylot <skylot@gmail.com>
2024-03-16 18:55:57 +00:00
Andrei Kudryavtsev
3599b248a4
feat(gui): dragging tab appearance settings (#2120)(PR #2118) 2024-03-08 23:11:58 +03:00
Skylot
56749b2afb
chore: update dependencies 2024-02-25 22:38:00 +03:00
Andrei Kudryavtsev
d7ec35791b
feat(gui): tabs drag and drop reorder support (#1212) (PR #2109) 2024-02-25 19:36:46 +00:00
Skylot
5c0c1daa71
fix(gui): use new RSTA line number formatter API to show source lines 2024-02-16 18:38:56 +00:00
Skylot
603ea3989a
chore: update dependencies 2024-02-16 17:41:37 +00:00
Emiel Matthys
018ff98df7
feat(gui): remember save preference decision (PR #2103)
* First version

* Use dropdown

* Spotless

* Language strings and tests

* Comment out translated versions

* Remove more translations

---------

Co-authored-by: Emiel Matthys <emiel.matthys@guardsquare.com>
2024-02-15 18:00:37 +00:00
Andrei Kudryavtsev
7e628ad1a1
fix(gui): detecting tab click with mousePressed instead of mouseClicked (PR #2097) 2024-02-04 17:36:02 +00:00
Skylot
1a07ab8ab1
chore: update dependencies 2024-01-25 20:10:39 +00:00
Skylot
75d2e540aa
refactor: add new task executor, remove task barrier (#1879) 2024-01-25 19:45:23 +00:00
Skylot
61be1d8b0a
fix(gui): allow to reset variable name, fix renames for inner classes 2024-01-18 20:36:51 +00:00
Skylot
4483533417
fix(gui): highlight word even if cursor at the end of that word (#2083) 2024-01-18 19:40:53 +00:00
Skylot
fb703cd856
fix(gui): scroll to first error on jadx script check/run 2024-01-18 18:17:53 +00:00
Skylot
c0ff7572ac
fix(gui): round file size to block size for cache usage calculation 2024-01-17 18:25:35 +00:00
Skylot
6f1dfb6848
chore: update dependencies 2024-01-15 22:18:45 +03:00
Skylot
03052baabe
chore: update dependencies 2024-01-11 19:10:44 +00:00
Iscle
23e643c686
fix(gui): attempt to resolve field rename issues with shortcut (#1440)(PR#2075)
This is an attempt to fix the issues that sometimes arise when renaming functions or variables using the "n" shortcut as stated in issue #1440.

The reasoning behind the change: The instance creation of the RenameDialog was somehow affecting the UI thread and not allowing for the key release event to be dispatched. By running everything inside the invokeLater block, this might get fixed as it will execute after all previous tasks are finished.
We now also only show the dialog after EVERYTHING is set up, not before.
2024-01-05 21:42:06 +03:00
Iscle
faeae086d1
feat(gui): improve search bar behavior when using key bindings (PR #2074)
Before, the search bar would toggle, which was quite annoying. Now, it replicates IntelliJ's search bar behaviour.

1.1. If the user has selected text, use that as the search text
1.2. Otherwise, use the previous search text (or empty if none)
2. Select all text in the search bar and give it focus
2024-01-05 21:31:34 +03:00
Iscle
38e64fafbd
feat: add an option to generate kotlin code for xposed (PR #2070)
* feat: add an option to generate kotlin code for xposed

A new setting was added, bumping the settings version to 19.

* refactor: applied spotless

* refactor: fixed formatting

* refactor: fixed formatting once again
2024-01-05 21:24:08 +03:00
Skylot
3e57dacfd3
chore: update dependencies 2023-12-21 19:00:33 +00:00
Iscle
f5accc8464
feat: add support for xapk files (#1597)(PR #2064)
* feat: annotate JadxPlugin with NotNull

Allows for better Kotlin support

* feat: add support for custom resources loader

* feat: add support for xapk resources loading

* fix: rename "decode" to "load"

* refactor: annotate JadxCodeInput with NotNull

* feat: add support for xapk code loading

* feat: add xapk support to file filter

* fix code formatting

* revert NotNull annotation

* several improvements

* refactor: fix typo

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-12-21 18:46:40 +00:00
Skylot
238fe17df0
fix(gui): add hint for class renaming (#1590) 2023-12-18 18:14:56 +00:00
Skylot
8db70ee7a5
fix(gui): resolve reset and commit issues for disk code cache 2023-12-16 19:20:43 +03:00
LanBaiCode
b6155afd32
fix(gui): use correct type for generic params in Xposed snippet (PR #2057)
* Fix: Resolved an issue with incorrectly generated xposedMethodSnippet when the parameter type is generic.
Add: Introduced xposedGenerateFieldSnippet.

* fix code format

* Fixed: Resolved the issue where Xposed code generation was incorrect when dealing with generic parameters and alias fields.

---------

Co-authored-by: skylot <118523+skylot@users.noreply.github.com>
2023-12-11 17:14:10 +00:00
Skylot
2de91f9a3a
chore: update gradle and dependencies 2023-12-04 23:18:51 +03:00
LanBaiCode
ca03406a3d
fix: correct type for generic params in Xposed snippet, add fields support (PR #2047)
* Fix: Resolved an issue with incorrectly generated xposedMethodSnippet when the parameter type is generic.
Add: Introduced xposedGenerateFieldSnippet.

* fix code format

---------

Co-authored-by: skylot <118523+skylot@users.noreply.github.com>
2023-11-25 17:55:53 +00:00
Skylot
1b51234edc
chore: update dependencies 2023-11-16 20:48:07 +03:00
Skylot
a989fa7e64
refactor(deobf): split deobfuscation conditions (#2040) 2023-11-05 20:22:15 +00:00
nitram84
f7002c7fad
feat(deobf): implement a whitelist for deobfuscation (PR #2040) 2023-11-05 20:21:41 +00:00
Skylot
192a8116f1
chore: update FlatLaf 2023-10-27 23:35:01 +03:00
Skylot
4a92ee07cc
fix(gui): hide not needed popup action for not editable code 2023-10-21 23:08:00 +01:00
Skylot
fdffe20c46
fix(gui): another try to fix code search 2023-10-21 23:08:00 +01:00
Skylot
15d464d620
fix(gui): improve code and method search (#2033) 2023-10-18 21:53:40 +01:00
Skylot
816308e3ca
chore: update dependencies 2023-10-15 20:06:35 +01:00
Julian Burner
d129be7e86
fix: update to Mapping-IO 0.5 (PR #2029)
* Update to Mapping-IO 0.5

* Fix Spotless error

* Fix Spotless error (2)

* Sort mappings by name when exporting
2023-10-09 18:46:51 +01:00
Skylot
6433fcef72
chore: update gradle and dependencies 2023-10-07 18:08:44 +01:00
Skylot
89acf73010
feat(plugins): cache available plugin list 2023-09-27 19:44:53 +01:00
Goooler
b70276d896
fix(gui): update zh_CN translation (PR #2022) 2023-09-27 16:19:11 +01:00
5idereal
76b370e249
update zh_TW translation (#2021) 2023-09-26 17:15:09 +01:00
Skylot
762c2d70bd
chore: fix typos 2023-09-24 18:53:39 +01:00
Skylot
4e81bdd76f
chore: update dependencies 2023-09-22 20:32:40 +01:00
Roni Ragil Iman Khoirul
8f0d0e4f4d
feat: add Indonesian translation (PR #2018)
* Add Indonesian translation

* fix load i18n resources with deprecated language codes

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-09-20 19:26:59 +01:00
Skylot
c39a696977
feat(script): add methods for apply renames and reload tabs (#2008) 2023-09-15 21:50:47 +01:00
Cesaryuan
b78a0257b4
fix(gui): improve highlight in UsageDialog (#2006)(PR #2007) 2023-09-15 16:19:13 +01:00
Skylot
76cf9596e2
build: fix win bundle script 2023-09-07 20:06:40 +01:00
Skylot
2d1d5a419c
chore: update dependencies, resolve gradle warnings 2023-09-07 16:15:05 +01:00
Skylot
f83ee45ac8
chore: update gradle and dependencies 2023-08-31 21:31:56 +01:00
Jan S
f695fafe74
chore(debugger): improve code and add details to error messages (PR #1982)
* chore: created list entry getter getRegListEntry for problematic code;
use specific containers/fields instead of SimpleEntry;
* chore: include details on the used ArtAdapter in error message
* add device info to registers exception

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-08-30 22:58:59 +01:00
Skylot
f81a2c4ebb
chore: update dependencies 2023-08-11 17:36:14 +01:00
Skylot
f213082da5
feat(gui): load available plugins from jadx-plugins-list 2023-08-05 22:41:51 +01:00
Mino
68b84ea786
feat(gui): allow user to set custom shortcuts (#1479)(PR #1980)
* feat(gui): allow user to customize shortcuts

* internal: fixed other constructor for jadx action

* make code area actions customizable

* show warning dialog when mouse button is commonly used

* applied code formatting

* code formatting and and moved string to resources

* moved action related classes to their own package

* added fix for actions with modifiers in macos

* ignore left click in shortcut edit

* applied code formatting

* warn user when a duplicate shortcut is entered

* save shortcut when key is pressed (instead of typed)

* fix node under mouse being ignored

Co-authored-by: skylot <118523+skylot@users.noreply.github.com>

* add missing import

* applied code formatting

* added custom shortcuts support to script content panel

* save shortcut when key is released (instead of pressed)

* enable custom shortcut in script autocomplete

* fix duplicate shortcut warning when the shortcut is set again at the same action

* fixed mouse buttons shortcut not working for code area

* fix exception with mouse button shortcuts

* fix action getting fired twice

* added variants for forward and back nav actions

* fix exception when shortcut is not saved

* fix mouse button shortcut for auto complete action

* consume mouse event if bound to an action

* workaround not being able to extend HashMap

* fix exception in script code area when using mouse button shortcut

* minor pref serialiazation improvement

* fix action buttons not working (like run action)

* fix exception with plugin actinos

* fixed nullptr when adding an action with null actionmodel to jadxmenu

* fix plugin action name not showing

---------

Co-authored-by: skylot <118523+skylot@users.noreply.github.com>
2023-08-03 20:05:25 +01:00
Mino
63fc7e05b6
refactor: reuse the same parser in main activity action and gradle export feature (PR #1971)
* internal: reuse the same parser in Main Activity action and export gradle project

* removed unnecessary logs

* fixed code formatting issues

* removed no longer used methods

* optimize imports

* fix exception when app name isn't found

* use EnumSet instead of int for parse flags

* moved ApplicationParams class under android utils package

* moved attributes parsing to a seperate method

* fallback to any strings.xml if default one is not found
2023-07-31 18:50:47 +01:00
Mino
0f5d07c6b1
feat(gui): hex-viewer for binary asset files (#198)(PR #1969)
* implemented hex-viewer feature

* added support for opening lib (.so) files

* removed unused class

* fix formatting

* fixed error when opening an empty file

* fixed a slight inaccuracy in synchronizing highlights

* defaulted little endian to false

* synchronize hex editor with theme and use smali font

* fixed wrong displayed values

* applied code formatting

* fixed selection color in preview panel

* Changed Smali Editor font entry in settings less confusing
2023-07-31 00:02:39 +01:00
Mino
d9692a4f5f
feat(gui): add 'go to main activity' action (#1423)(PR #1965)
* implemented feature: 'go to main activity'
* fix code formatting (added braces to if statements)
* search main activity by original class name, handle exceptions

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-07-29 21:03:25 +01:00
Mino
ef0c09ca5b
feat(gui): show number of search results in search bar (#1819)(PR #1964)
* gui: show number of search results in search bar, closes #1819
* optimized imports
* use string from resources
* applied code formatting
2023-07-28 22:17:04 +01:00
Skylot
752c61ae71
fix: disable zip file checks for new JVM versions (#1962) 2023-07-28 20:09:54 +01:00
Skylot
8f635076ea
fix(gui): allow html for empty package name (#1961) 2023-07-26 21:03:55 +01:00
Skylot
8d5130a329
chore: update gradle and dependencies 2023-07-26 21:03:54 +01:00
Jan S
de8c315a7a
fix(gui): display Quark stderr output in Jadx log (#1955)(PR #1957)
* Quark: also display error stream in Jadx log

* use info log level, open log viewer to track progress

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-07-24 18:03:37 +01:00
JustFor
3abdd40498
fix(gui): update Messages_zh_CN.properties (PR #1951) 2023-07-17 18:45:47 +01:00
Skylot
5b7ebec7e3
feat(gui): add option to set cache location, view/delete exists caches (#1941) 2023-07-17 00:49:40 +03:00
Yoav Sternberg
de603ef909
fix(gui): support inline node for jump to code (#1905)(PR #1950) 2023-07-15 18:58:16 +01:00
JustFor
a0a6779097
fix(gui): update Messages_zh_CN.properties (PR #1949)
1. Fill in the missing information
2. Sync new texts.
2023-07-12 16:36:43 +01:00
Skylot
d076c4e73d
build: migrate to kotlin dsl in gradle scripts, update gradle and deps 2023-07-08 20:13:37 +01:00
Skylot
3e4c6a9c51
refactor(gui): don't use map for store open tabs order (#1940) 2023-07-06 17:14:31 +01:00
bytemarx
219f9ebede
feat(gui): close all tabs to the right (#1939)(PR #1940)
* feat(gui): close all tabs to the right (#1939)

* remove usage of LinkedHashMap as variable type

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-07-05 22:54:19 +01:00
Skylot
ba0e918fef
chore: update dependencies 2023-07-05 20:20:01 +01:00
5idereal
0efc99e43e
fix(lang): update zh_TW translation (PR #1938) 2023-07-04 19:20:37 +01:00
Julian Burner
240a903438
fix: don't override passed mappings path (#1891)(PR #1925)
* Don't override passed mappings path

* Fix spotless error
2023-06-28 18:20:34 +01:00
chaos
afa331e8fc
feat(gui): register macOS specific open file handler (#1922)(PR #1923)
* feature:支持双击文件后直接打开jadx-gui

* additional checks

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-06-20 18:36:37 +01:00
Skylot
6f4451364b
fix(script): use compile instead analyze for scripts with deps (#1912) 2023-06-15 21:10:11 +01:00
Skylot
1a642108ef
fix(script): temp workaround to disable script checks before run (#1912) 2023-06-14 09:43:51 +01:00
Skylot
85b77cd3c0
chore: update dependencies 2023-06-11 13:42:47 +01:00
Yoav Sternberg
f558203a9d
feat(api): access node under caret/mouse and jump (PR #1903)
* Access node under caret/mouse and jump
* Apply lint
2023-06-09 15:50:57 +01:00
Skylot
347d6e2c2e
refactor: improve github plugin resolver 2023-06-07 22:09:06 +01:00
Skylot
eb4d540b04
chore: update dependencies 2023-06-07 21:20:05 +01:00
cskwrd
83b6ffbba9
fix(gui): fix spelling (PR #1897) 2023-06-07 16:47:39 +01:00
Skylot
50c5f0874f
feat(gui): manage plugins in preferences window 2023-06-06 22:29:31 +01:00
Skylot
a72e6aeafe
feat(plugins): allow to set custom settings page in jadx-gui 2023-06-06 21:58:30 +01:00
Skylot
683cd76cc5
feat: add events support (#1832) 2023-06-06 21:58:29 +01:00
Skylot
2e3579a8fd
fix(gui): disable rename action in tree popup if not allowed (#1890) 2023-06-03 14:38:33 +01:00
Skylot
99c8ceae9a
fix(gui): don't reset package alias on class rename (#1732) 2023-06-03 16:20:44 +03:00