User Tools

Site Tools


android

Android

Android Studio Ignored Files

  • build (and build directory if there are multiple modules in a project)
  • .idea
  • *.iml
  • local.properties
  • .DS_Store
  • .gradle
  • .cxx

Pull APK from device

Get the list of installed packages to determine what to pull:

> adb shell pm list packages | grep tom
package:com.customermobile.preload.vzw
package:com.fanqies.tomatofn

With the package name, we can get the actual file name and location of the APK using:

> adb shell pm path com.fanqies.tomatofn
package:/data/app/com.fanqies.tomatofn-g0zd0oekwgIETU7mS62UEQ==/base.apk

Then pull it:

adb pull /data/app/com.fanqies.tomatofn-g0zd0oekwgIETU7mS62UEQ==/base.apk

This will result in an APK file “base.apk” downloaded onto your computer. Rename it appropriately:

mv base.apk tomato.apk

Decompile app to android Studio

Sign an APK

rm -rf $1_pre.apk 
rm -rf $1_signed.apk
rm -rf %1_aligned.apk 

apktool b -o $1_pre.apk $1
~/Library/Android/sdk/build-tools/28.0.3/zipalign -f 4 $1_pre.apk $1_aligned.apk
echo "android" | ~/Library/Android/sdk/build-tools/27.0.3/apksigner sign --ks ~/.android/debug.keystore --out $1_signed.apk $1_aligned.apk 
rm -rf $1_pre.apk 
rm -rf $1_aligned.apk 

echo ""
echo -n "Signed APK: "
echo $1_signed.apk
echo ""

Then uninstall the app on the phone. Then install it from your computer:

adb install tomato_project_signed.apk

Debug over wifi

Follow directions at: https://futurestud.io/tutorials/how-to-debug-your-android-app-over-wifi-without-root

Basically:

  1. Connect the phone to USB
  2. Make sure the device is present: “adb devices”
  3. adb tcpip 5555
  4. Unplug the phone from USB
  5. Go to the Settings → About phone → Status to view the IP address of your phone.
  6. adb connect <IP address of your device>:5555

Note: The TCP connection may stop occasionally and need to be restarted. Run this to continually try to restart the connection every second:

watch -n 1 adb connect <IP address of your device>:5555

Get BtSnoop logfile

DATE=`date +%d%m%y_%H%M%S`
#echo $DATE
FILENAME=btsnoop_hci.$DATE.log
JSON_FILENAME=btsnoop_hci.$DATE.json
#echo $FILENAME
mkdir -p logs
cd logs
mkdir -p temp
cd temp
adb bugreport > BUG_REPORT.txt >/dev/null 2>/dev/null
unzip *.zip  >/dev/null 2>/dev/null
cp FS/data/misc/bluetooth/logs/btsnoop_hci.log ../$FILENAME >/dev/null 2>/dev/null
cd ..
rm -rf temp
echo "The btsnoop logfile is logs/$FILENAME"
tshark -T json -r $FILENAME >$JSON_FILENAME
echo "The btsnoop JSON logfile is logs/$JSON_FILENAME"

Galaxy S8/9/10 Get SNOOP file

This is tested and verified working for S8, S9, S10+ Android 8.0 through to 9.1:

Input “*#9900#” (there is an asteriks in there) in the dial pad. An engineer mode menu will pop up. Click “Run DUMPSTATE/LOGCAT/”. Wait. It may take several minutes for this to generate logs. Click “Copy To sdcard…” or “Copy to ext sdcard”

/sdcard/logs will contain an extensive dump of system logs /sdcard/logs/bluetooth/ will contain your timestamped btsnoop_hci_ log files

android.txt · Last modified: 2021/02/04 22:22 by jrseti