Shell Script For Installing/Uninstalling/Launching APK
My job requires me to install APK, launch application, test application, and uninstall application. Wrote this script to automate commands I have to run in console.
#!/usr/bin/php
<?php
$usage = <<<EOD
Usage example:
apker install /path/to/game.apk
apker launch /path/to/game.apk
apker uninstall /path/to/game.apk
apker /path/to/game.apk
EOD;
if (count($argv) == 2) {
installAPK($argv[1]);
launchAPK($argv[1]);
exit(0);
}
if (count($argv) == 3) {
if (strtolower($argv[1]) == 'install') {
installAPK($argv[2]);
exit(0);
}
elseif (strtolower($argv[1]) == 'launch') {
launchAPK($argv[2]);
exit(0);
}
elseif (strtolower($argv[1]) == 'uninstall') {
uninstallAPK($argv[2]);
exit(0);
}
else {
echo "$usage\n";
exit(1);
}
}
echo "$usage\n";
exit(1);
function installAPK($apk) {
echo "Install ...\n";
if (shell_exec("adb install $apk")) {
echo "Install successful...\n";
}
else {
echo "Install unsuccessful...\n";
exit(1);
}
}
function uninstallAPK($apk) {
$package = getPackage($apk);
echo "Uninstall $package...\n";
if (shell_exec("adb uninstall $package")) {
echo "Uninstall successful...\n";
}
else {
echo "Uninstall unsuccessful...\n";
exit(1);
}
}
function launchAPK($apk) {
$activity = getLaunchableActivity($apk);
$package = getPackage($apk);
echo "Launching $activity...\n";
if (shell_exec("adb shell am start -c android.intent.category.LAUNCHER -n $package/$activity")) {
echo "Launch successful...\n";
}
else {
echo "Launch unsuccessful...\n";
exit(1);
}
}
function getPackage($apk) {
$output = shell_exec("aapt d badging $apk");
// package: name='com.spoof.sms'
preg_match("/package: name='([^']+)'/", $output, $matches);
return $matches[1];
}
function getLaunchableActivity($apk) {
$output = shell_exec("aapt d badging $apk");
// launchable-activity: name='com.spoof.sms.com.home'
preg_match("/launchable-activity: name='([^']+)'/", $output, $matches);
return $matches[1];
}
?>