MCPcopy Index your code
hub / github.com/apk-spectrum/apk-scanner

github.com/apk-spectrum/apk-scanner @v2.14_r1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.14_r1 ↗ · + Follow
2,068 symbols 5,678 edges 200 files 68 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

APK Scanner

Software License
Welcome to the APK Scanner!

WEBSITE : https://apk-spectrum.github.io/apk-scanner/
WIKI : https://github.com/apk-spectrum/apk-scanner/wiki

Introduce the APK Scanner

The APK scanner analyzes the APK file to show all the APK information,
And provides functions such as installing in the device and extracting and analyzing the installed apps,
It is a tool to dramatically streamline APK management. (more..)

Build

This project uses the Maven. And include the Maven Wrapper (MVNW).

[Windows]
> .\mvnw.cmd compile

[Ubuntu/Mac]
$ ./mvnw compile

You can build on IDE such as VSCODE or ECLIPSE.

Requirements

JDK 8 or later
If using VSCode with "Extension Pack for Java"

Open a project in IDE

  1. source code download with submodule

    git clone --recurse-submodule https://github.com/apk-spectrum/apk-scanner

  2. Open project

by VSCODE)

VSCODE > File > Open Folder > Select "apk-scanner path"
> Wait open the "JAVA PROJECTS" into the EXPLORER side bar > more(…) > Clean Workspace > Reload and delete

Run Configuration)
Run and Debug(Ctrl + Shift + D) > "create a launch.json file" > Java > Select "Launch Main" in combobox
> Run > Start Debugging(F5) or Run Without Debugginng(Ctrl + F5)

Set JVM Options)  
Add line below into each configuration of launch.json  
"vmArgs": ["-Dfile.encoding=UTF-8"]  
OR  
Add this line below into your user setting json file  
"java.debug.settings.vmArgs": "-Dfile.encoding=UTF-8"  

by ECLIPSE)

Eclipse > File > Open Projects from File System... > Directory... > Select "apk-scanner path" > Finish
> Right click in Project Explorer > Maven > Update Project...(Alt + F5) > OK

Run Configuration)
Run > Run As > Java Application(Alt+Shift+X, J) > Select a "Main - com.apkscanner" > OK

Show log for debugging

Press F12 key on main window focused.

Package

1. maven package

[Windows]
> .\mvnw.cmd package

[Ubuntu/Mac]
$ ./mvnw package

Output : target/APKScanner.jar

2. Make an installer or archive

[ALL Platform on Ubuntu/Mac]  
Requirements : NSIS, dpkg  
  Ubuntu :  
    $ sudo apt update && sudo apt install -y nsis  
  MacOS :  
    $ sudo brew install makensis dpkg  

$ target/package.sh 2.x.x v2xxxx_r1_yyyymmdd  
OR  
$ APP_VERSION=2.x.x FILE_VERSION=v2xxxx_r1_yyyymmdd target/package.sh  

Output :  
target/APKScanner_v2xxxx_r1_yyyymmdd_win_setup.exe  
target/APKScanner_v2xxxx_r1_yyyymmdd_win_portable.zip  
target/APKScanner_v2xxxx_r1_yyyymmdd_ubuntu_setup.deb  
target/APKScanner_v2xxxx_r1_yyyymmdd_mac.dmg [Only on Mac]  

[Windows]  
Requirements : NSIS 3 or later - https://nsis.sourceforge.io/Download  

> .\target\package.bat 2.x.x v2xxxx_r1_yyyymmdd  

Output :  
target/APKScanner_v2xxxx_r1_yyyymmdd_win_setup.exe  
target/APKScanner_v2xxxx_r1_yyyymmdd_win_portable.zip  
[Windows Installer]  
: on Windows10  
Requirements : NSIS 3 or later - https://nsis.sourceforge.io/Download  

> .\target\win_setup.bat

: on Ubuntu/Mac  
Requirements : NSIS  
  Ubuntu :  
    $ sudo apt update && sudo apt install -y nsis  
  MacOS :  
    $ sudo brew install makensis  

$ target/win_setup.sh  

Output : target/APKScanner_win_setup.exe
[Windows portable archive]  
: on Ubuntu/Mac  
$ target/win_portable.sh  

: on Windows10
> target\win_portable.bat  

Output : target/APKScanner_win_portable.zip  
[Ubuntu debian package]  
: on Ubuntu/Mac  
$ target/debian_setup.sh  

Output : target/APKScanner_ubuntu_setup.deb
[MacOS DMG image]  
: on Mac  
$ target/mac_setup.sh  

Output : target/APKScanner_mac.dmg

Setup & Launch

Supported OS : Windows10, Linux Ubuntu 18.04, macOS Catalina(10.15.7)
※ Based on tested OS version.

Setup

for Windows

Using SetupWizard
  1. Launch APKScanner_xxx_win_setup.exe
Using portable
  1. Uncompress APKScanner_xxx_win_portable.zip
  2. Launch ApkScanner.exe

for Linux (ubuntu)

Using Debian installer

$ sudo dpkg -i APKScanner_xxx_linux_setup.deb

Launch

  1. Double click to an APK File on the explorer.

External Tools & Resources

Using following tools & libraries

External Execute Tools

Android Asset Packaging Tool, Android Debug Bridge Software License
- http://developer.android.com/tools/help/adb.html
JD-GUI Software License
- http://jd.benow.ca/
dex2jar Software License
- https://sourceforge.net/projects/dex2jar/

External Dependency Libraries

ddmlib Software License
- https://android.googlesource.com/platform/tools/base/+/master/ddmlib/
guava Software License
- https://github.com/google/guava/
jna Software License
- https://github.com/java-native-access/jna/
mslinks Software License
- https://github.com/BlackOverlord666/mslinks/
RSyntaxTextArea with AutoComplete, RSTAUI Software License
- http://bobbylight.github.io/RSyntaxTextArea/
json-simple Software License
- https://code.google.com/archive/p/json-simple/
commons-cli Software License
- https://commons.apache.org/proper/commons-cli/
luciad/webp-imageio Software License
- https://bitbucket.org/luciad/webp-imageio/

Images

Toolbar icons : https://dribbble.com/shots/1925117-Filo-Icon-Set-Free
Othres : https://github.com/ioBroker/ioBroker.icons-open-icon-library-png

License Software License

APK Sanner are released under the Apache 2.0 license.

Extension points exported contracts — how you extend this code

IProgressListener (Interface)
(no doc) [5 implementers]
src/main/java/com/apkscanner/gui/tabpanels/IProgressListener.java
EasyToolListner (Interface)
(no doc) [4 implementers]
src/main/java/com/apkscanner/gui/easymode/contents/EasyToolIcon.java
ITabRenderer (Interface)
(no doc) [2 implementers]
src/main/java/com/apkscanner/test/Demo.java
TreeNodeData (Interface)
(no doc) [2 implementers]
src/main/java/com/apkscanner/gui/tabpanels/TreeNodeData.java
TableRowObject (Interface)
(no doc) [2 implementers]
src/main/java/com/apkscanner/gui/dialog/SimpleCheckTableModel.java

Core symbols most depended-on inside this repo

get
called by 645
src/main/java/com/apkscanner/gui/dialog/SimpleCheckTableModel.java
add
called by 572
src/main/java/com/apkscanner/gui/tabpanels/ResourceNode.java
add
called by 145
src/main/java/com/apkscanner/gui/easymode/core/ColumnGroup.java
setVisible
called by 108
src/main/java/com/apkscanner/gui/dialog/ApkSignerWizard.java
getImageIcon
called by 103
src/main/java/com/apkscanner/resource/RImg.java
setText
called by 101
src/main/java/com/apkscanner/gui/easymode/util/EasyTextField.java
addActionListener
called by 95
src/main/java/com/apkscanner/gui/ToolBar.java
setBackground
called by 92
src/main/java/com/apkscanner/gui/easymode/util/EasyRoundButton.java

Shape

Method 1,754
Class 289
Enum 17
Interface 8

Languages

Java100%

Modules by API surface

src/main/java/com/apkscanner/gui/dialog/PermissionHistoryPanel.java83 symbols
src/main/java/com/apkscanner/gui/dialog/PackageTreeDlg.java65 symbols
src/main/java/com/apkscanner/gui/tabpanels/BasicInfo.java41 symbols
src/main/java/com/apkscanner/gui/ToolBar.java41 symbols
src/main/java/com/apkscanner/gui/dialog/SettingDlg.java40 symbols
src/main/java/com/apkscanner/resource/RProp.java38 symbols
src/main/java/com/apkscanner/gui/installer/ApkInstallWizard.java37 symbols
src/main/java/com/apkscanner/gui/dialog/SearchDlg.java34 symbols
src/main/java/com/apkscanner/test/Demo.java29 symbols
src/main/java/com/apkscanner/gui/installer/InstallProgressPanel.java28 symbols
src/main/java/com/apkscanner/gui/easymode/EasyGuiMainPanel.java28 symbols
src/main/java/com/apkscanner/gui/easymode/test/RangeSliderUI.java26 symbols

For agents

$ claude mcp add apk-scanner \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact