blob: c467aeea52f8821aca8e24e5198fb546b9e16c40 [file] [log] [blame]
#!/system/bin/sh
# TODO: restructure this to keep bugreports entirely on internal storage
# Do not allow bugreports on user builds unless USB debugging
# is enabled.
if [ "x$(getprop ro.build.type)" = "xuser" -a \
"x$(getprop init.svc.adbd)" != "xrunning" ]; then
exit 0
fi
# Build emulated storage paths when appropriate
# See storage config details at http://source.android.com/tech/storage/
if [ -n "$EMULATED_STORAGE_SOURCE" ]; then
writePath="$EMULATED_STORAGE_SOURCE/0"
readPath="$EMULATED_STORAGE_TARGET/0"
else
writePath="$EXTERNAL_STORAGE"
readPath="$EXTERNAL_STORAGE"
fi
tmpPath="/data/local/tmp"
bugreportPath="bugreports"
screenshotPath="Pictures/Screenshots"
# Create directories if needed
if [ ! -e "$writePath/$bugreportPath" ]; then
mkdir "$writePath/$bugreportPath"
fi
if [ ! -e "$writePath/$screenshotPath" ]; then
mkdir "$writePath/$screenshotPath"
fi
timestamp=`date +'%Y-%m-%d-%H-%M-%S'`
# take screen shot
# we run this as a bg job in case screencap is stuck
/system/bin/screencap -p "$writePath/$screenshotPath/Screenshot_$timestamp.png" &
# run bugreport
/system/bin/dumpstate -o "$tmpPath/bugreport-$timestamp" $@
# copy finished bugreport into place for sending
cp "$tmpPath/bugreport-$timestamp.txt" "$writePath/$bugreportPath/bugreport-$timestamp.txt"
# clean up any remaining files
rm $tmpPath/bugreport*
# invoke send_bug to look up email accounts and fire intents
# make it convenient to send bugreport to oneself
/system/bin/send_bug "$readPath/$bugreportPath/bugreport-$timestamp.txt" "$readPath/$screenshotPath/Screenshot_$timestamp.png"