๐ค DroidGround Companion
January 6, 2026 ยท View on GitHub
This sub-project is heavily based on the aya server which works the same way as the scrcpy server: a Java application that can be run on Android because the classes are dexed. An application built in this way can be run with the following command:
adb shell CLASSPATH=/data/local/tmp/classes.dex app_process / my.package.MainClass
๐ค Communication
The application waits for a connection on the droidground UNIX abstract namespace socket and communicates with the client using protobuf.
The application currently supports the following methods:
getVersion: which returns the value ofBuildConfig.VERSION_NAMEgetPackageInfos: which returns structured info about the applicationsgetAttackSurfaces: which returns the exported activities, broadcast receivers, services and content providers for the requested applications.getAPKPackageName: which returns the package name of an APK file on the device.
โ Usage
-
Build the Android app server:
./gradlew assembleRelease -
Push the server binary to the device:
adb push droidground-companion.dex /data/local/tmp -
Start the companion app:
adb shell CLASSPATH=/data/local/tmp/droidground-companion.dex app_process /system/bin com.secforce.droidground.Server -
The server listens for incoming protobuf-based client connections (on
localabstract:droidground).