Skip to content

Instantly share code, notes, and snippets.

@blundell
Last active April 22, 2022 17:23
Show Gist options
  • Select an option

  • Save blundell/7c0c3bb17898b28fe8122b0dc230af50 to your computer and use it in GitHub Desktop.

Select an option

Save blundell/7c0c3bb17898b28fe8122b0dc230af50 to your computer and use it in GitHub Desktop.
Uninstall all apps on an Android Device that have the intent-filter category IOT_LAUNCHER
#!/bin/bash
sp="/-\|"
sc=0
spin() {
printf "\b${sp:sc++:1}"
((sc==${#sp})) && sc=0
}
endspin() {
printf "\r"
}
echo "Uninstalling Android Things category apps"
# This script is for > DP8
# for < DP8 you need to replace android.intent.category.HOME with android.intent.category.IOT_LAUNCHER on line 25
spin
userInstalledPackages=( $(adb shell pm list packages -3 | sed -e "s/^"package:"//" ) )
iotPackages=()
for userPackage in "${userInstalledPackages[@]}"
do
:
spin
categoryLauncherText=$( adb shell pm dump $userPackage | grep "android.intent.category.HOME")
if [ -n "${categoryLauncherText}" ]; then
iotPackages+=(${userPackage})
fi
done
endspin
for iotPackage in "${iotPackages[@]}"
do
:
echo "Uninstalling $iotPackage"
adb uninstall $iotPackage
done
echo "Complete"
@blundell

blundell commented Jan 4, 2017

Copy link
Copy Markdown
Author

When you have ran multiple apps on an Android Things device and then boot the device it won't start any app but instead go to the intent chooser, for the user to select one of these apps to start. Therefore if you have no screen attached - nothing happens.

This script uninstalls all apps that you have installed (searching for intent category IOT_LAUNCHER) so that you can start again afresh.

screen shot 2017-01-04 at 9 01 53 pm

@mwolfson

Copy link
Copy Markdown

This is awesome!

@jdestremps

Copy link
Copy Markdown

Perfect! Works great. Thank you... :)

@nekdenis

nekdenis commented Aug 3, 2017

Copy link
Copy Markdown

Lifesaver!

@arvindpdmn

Copy link
Copy Markdown

May I know where you are running this script. Is it from the terminal of Android Studio? Or do you use serial console access to run it on the device? BTW, where's the best place to put default startup scripts? Thx

@n8ebel

n8ebel commented Feb 3, 2018

Copy link
Copy Markdown

Terrific..thanks!!

@blundell

blundell commented Apr 18, 2018

Copy link
Copy Markdown
Author

@arvindpdmn sorry I missed the notification. Yes, run this from a terminal if you only have one device connected it will use adb to talk to it (also there is a terminal window inside Android Studio you could use).

Default startup scripts (I assume you mean on a device) - Android Things runs at a higher level of abstraction than having to run startup scripts. Your best bet is to put some code into your Application class onCreate method (googling this term will help you)

@davemckelvie

Copy link
Copy Markdown

Great idea, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment