APK Extractor appAPK Extractor app from the Store.apk fileadb - https://developer.android.com/tools/adbadb on your computeradb shell pm list packages | grep APP_NAMEadb shell pm path FULL_APP_NAMEadb pull APK_PATHapktoolsapktool can extract the .apk file into a directory with the resources and the classes
java -jar apktool.jar d APP_NAME.apk
dex2jardex2jar can transform the .apk into a .jar file viewable by jd-gui
# download the latest release
# extract the zip file
d2j-dex2jar.sh APP_NAME.apk
jd-guijd-gui can view the .jar file generated by dex2jar
java -jar jd-gui.jar APP_NAME-dex2jar.jar
jadxjadx can decompile the .apk file and view the source code
jadx -d out_folder APP_NAME.apk
jadx-gui # open the APK inside
apksigner verify --print-certs example.apk
keytoolThe keystore is often a PKCS12 keystore type
# list the keys
keytool -keystore ~/path/to/keystore -list
# export the certificate
keytool -keystore ~/path/to/keystore -exportcert -alias key_alias -file exported_certificate.der
# convert JKS to PKCS12
keytool \
-importkeystore \
-srckeystore ~/path/to/keystore \
-destkeystore PRIVATE_KEYSTORE.p12 \
-srcstoretype JKS \
-deststoretype PKCS12 \
-srcstorepass $STORE \
-deststorepass key_out \
-srcalias key_alias \
-destalias key_alias \
-srckeypass $KEY \
-destkeypass key_out \
-noprompt
# export private key
openssl pkcs12 -in PRIVATE_KEYSTORE.p12 -nodes -nocerts -out private.key
# check the private.key file
sudo waydroid init
waydroid session start
waydroid app install app.apk
waydroid show-full-ui
# stop
waydroid session stop
# if you are running x11, use weston to have wayland interface
weston --socket=mysocket
# then do the command inside the weston terminal
Choose version
10406996 = 11.0
9862592 = 10.0
9477386 = 9.0
9123335 = 8.0
8512546 = 7.0
export ANDROID_SDK_ROOT=$HOME/.android/sdk
curl https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o file.zip
mkdir -p $ANDROID_SDK_ROOT/cmdline-tools/
unzip file.zip -d $ANDROID_SDK_ROOT/
mv $ANDROID_SDK_ROOT/cmdline-tools/ $ANDROID_SDK_ROOT/temp
mkdir -p $ANDROID_SDK_ROOT/cmdline-tools/latest
mv $ANDROID_SDK_ROOT/temp/* $ANDROID_SDK_ROOT/cmdline-tools/latest
SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
touch $ANDROID_SDK_ROOT/repositories.cfg
# accept licenses
yes | $SDKMANAGER --licenses
$SDKMANAGER --list
$SDKMANAGER tools platform-tools
# install correct version
$SDKMANAGER 'platforms;android-10'
$SDKMANAGER 'build-tools;28.0.3'
$SDKMANAGER "system-images;android-29;default;x86"
# emulator avd
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/avdmanager create avd -n TestAVD -k "system-images;android-29;default;x86" --device "pixel_4"
# to delete it
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/avdmanager delete avd -n TestAVD
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/avdmanager list avd
$ANDROID_SDK_ROOT/emulator/emulator -avd TestAVD
# android stuff
export ANDROID_SDK_ROOT=$HOME/.android/sdk
export ANDROID_HOME=$HOME/.android/sdk/
export SDKMANAGER=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager
export ANDROID_NDK_HOME=$HOME/.android/sdk/ndk/