- Starting from version V4.1
- Android 17 - Android 7.0
- Android TV、Android
- This project allows you to perform Fastboot flashing in a root-free environment and connect to adbd
- For the Shell executor, we may need to migrate to the foreground service to fully use all the instructions that come with Android 14+. The background process daemon service solution may no longer be a recommended solution for Android 14+ systems.
- For the existing local shell service, I would refactor it in V4.2
- Starting from version V4.2
- How to use shell script to call internal instructions of the application
- For example, calling the root-free fastboot command implemented inside the application
#!/system/bin/sh
# The prerequisite for using the fastboot instruction is isFastbootMode = true
fastboot() {
# am broadcast -a com.adb.kitty.MY_CMD --es "args" "$*" > /dev/null
am broadcast -a com.adb.kitty.MY_CMD --es "cmd" "$*" > /dev/null
}
fastboot getvar unlocked
fastboot oem device-info
- Support KernelSU、SukiSU、Magisk
- Starting from version V4.2
# Flashing non-vab devices
$su -c cat /sdcard/boot.img > /dev/block/by-name/boot
$su -c cat /sdcard/init_boot.img > /dev/block/by-name/init_boot
# Adding the -M parameter and using global root permissions to flash can solve the problem of insufficient permissions on most devices.
$su -M -c cat /sdcard/boot.img > /dev/block/by-name/boot
$su -M -c cat /sdcard/init_boot.img > /dev/block/by-name/init_boot
# Query the currently active slot before flashing the vab device
$getprop ro.boot.slot_suffix
# Flash vab device partition _a
$su -c cat /sdcard/boot.img > /dev/block/by-name/boot_a
$su -c cat /sdcard/init_boot.img > /dev/block/by-name/init_boot_a
# Flash vab device partition _b
$su -c cat /sdcard/boot.img > /dev/block/by-name/boot_b
$su -c cat /sdcard/init_boot.img > /dev/block/by-name/init_boot_b
- You don't need to use MT Manager to inject a file provider for your APK to create the corresponding local storage directory
- Starting from version V4.2
- Now there are not only sample scripts in the project, but also built APKs, which use signature schemes v2, v3, v3.1, and v3.2 respectively.
- Hope this sample script can help you
- Verify v3.2 signature scheme using JDK 25
$ java --version
openjdk 25.0.4 2026-07-21
OpenJDK Runtime Environment (build 25.0.4)
OpenJDK 64-Bit Server VM (build 25.0.4, mixed mode)
$ ./apksigner verify -v --verbose app-release-sign.apk
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v3.1 scheme (APK Signature Scheme v3.1): true
Verified using v3.2 scheme (APK Signature Scheme v3.2): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
$ ./apksigner verify -v --verbose app-debug-sign.apk
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v3.1 scheme (APK Signature Scheme v3.1): true
Verified using v3.2 scheme (APK Signature Scheme v3.2): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
- commercialization allowed
- Allow transactional
- Allow templating