2 of 8 added 616 characters in body

Should you ever decide to go with a command-line way, you can do

(Note: you would need a *nix system, adb setup in PC and device connected to it in debugging mode.)

adb shell dumpsys package | awk -v RS='\n +codePath=' '/android\.permission\.CAMERA/{print $1}' | sed -e 's/Verifiers\://g' | tail -n +2 | tr -d '\r' | while read line; do adb shell aapt d badging $line | grep ': label' | awk -F "'" '{print($2)}' ; done

Replace adb shell pm uninstall $line with echo "adb shell pm uninstall $line" for a dry run / demo.

  • dumpsys package: list all the installed packages with their info
  • awk: finds the permission (mentioned in the command) in the output of previous command and list the APK's path corresponding to the permission (originally, by muru)
  • sed, tail and tr: does some cleaning of bits and pieces of last output
  • while and do: while reads each line from the output and do executes the further task. The further task involves passing APK's path to aapt and extract the label of the app from the followed output.

    (I'm using aapt binary for Android, hence used adb shell in prefix. For PC, download Android SDK.)

Dummy output of the command

AirDroid
Camera
Elixir
Google Search
DS Battery Saver Pro
GravityBox
Search Light
Barcode Scanner
Droid Automation
Google+
Android Live Wallpapers
WeLine
FreeOTP
MacroDroid
Gallery
Tasker
Webkey
Mobileuncle Tools
Talk
System UI
YouTube
Face Unlock
Chrome
Google Play services

Use this command to remove those apps in bulk

adb shell dumpsys package | awk -v RS='\n +Package' '/android\.permission\.CAMERA/{print $1}' | sed -e 's/\[//g' -e 's/\]//g' -e 's/Verifiers\://g' | tail -n +2 | tr -d '\r' | while read line; do adb shell pm uninstall $line; done;

For Windows users, this answer by Lucky may help.