Key: Adb App Control Extended
#!/bin/bash # Extended ADB App Control Script PACKAGE=$1 ACTION=$2 USER_ID=$3:-0 # Default to user 0
adb shell pm disable-user --user 0 com.google.android.youtube adb shell pm disable-user --user 0 com.android.camera2 adb shell pm grant com.google.android.gm android.permission.CAMERA Wait—the last line is crucial. Instead of disabling camera apps, you revoke the permission via the extended key. A game constantly runs background tracking services. Instead of uninstalling (which loses data), you suspend it. adb app control extended key
adb shell am start -n com.shop.app/.ProductActivity --es "product_id" "12345" --ez "from_notification" true This bypasses the homepage and launches directly into a product detail screen with a simulated notification origin. Let’s build a real-world script that uses the extended key concept. Save this as advanced_app_control.sh (or .bat for Windows). Instead of uninstalling (which loses data), you suspend it
case $ACTION in suspend) echo "Suspending $PACKAGE (extended suspend key)" adb shell pm suspend --user $USER_ID $PACKAGE ;; unsuspend) echo "Unsuspending $PACKAGE" adb shell pm unsuspend --user $USER_ID $PACKAGE ;; disable-until-launch) echo "Disabling $PACKAGE until launched by user" adb shell pm disable-until-used --user $USER_ID $PACKAGE ;; grant-all-perms) echo "Granting all dangerous permissions to $PACKAGE" adb shell pm list permissions -d -g | grep "Permission:" | awk 'print $2' | while read perm; do adb shell pm grant $PACKAGE $perm done ;; deep-link) URL=$4 echo "Launching $PACKAGE with extended key deep link to $URL" adb shell am start -W -a android.intent.action.VIEW -d "$URL" $PACKAGE ;; *) echo "Usage: $0 <package> <suspend|unsuspend|disable-until-launch|grant-all-perms|deep-link> [user_id]" ;; esac Save this as advanced_app_control