https://developer.android.com/studio/command-line/aapt2
$ aapt d badging /system/app/FaceService/FaceService.apk # for app in /system/app/*/*.apk do echo -n $app | sed -e 's/\/system\/app\//|/;s/\/.*/|/' /data/local/tmp/aapt-arm-pie d badging $app | grep -m1 package | sed -e "s/^.*name='//;s/'.*versionName='/|/;s/'.*$/|/" done
AppOpsManager, depuis Android 4.4, documentation.
API pour interagir avec le suivi du “fonctionnement de l'application” comme ils disent…
L'outil permet de remonter les opérations utilisées par les packages, ça ressemble aux permissions de l'Android.Manifest, pas très clair.
Dans le code source, les opérations string sont listées: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app/AppOpsManager.java
# les opérations pour l'appli Messages $ cmd appops get com.samsung.android.messaging WRITE_CALL_LOG: allow; time=+782d4h36m58s69ms ago POST_NOTIFICATION: allow; time=+782d4h36m58s133ms ago READ_SMS: allow; time=+1h49m24s757ms ago WRITE_SMS: allow; time=+1h49m24s804ms ago READ_ICC_SMS: allow; time=+1h49m24s757ms ago READ_EXTERNAL_STORAGE: allow; time=+1h49m24s917ms ago WRITE_EXTERNAL_STORAGE: allow; time=+1h49m24s917ms ago RUN_IN_BACKGROUND: allow; time=+1h49m24s826ms ago # lister par opérations: $ cmd appops query-op READ_CLIPBOARD allow $ cmd appops query-op RUN_IN_BACKGROUND allow | sort # une permission ne fonctionnera pas $ cmd appops query-op ACCESS_WIFI_STATE allow Error: Unknown operation string: ACCESS_WIFI_STATECe qui est intéressant par contre, c'est de pouvoir changer la valeur de celles-ci.
# changer la valeur de RUN_IN_BACKGROUND $ cmd appops set com.microsoft.office.word RUN_IN_BACKGROUND ignore $ cmd appops set com.microsoft.office.onenote RUN_IN_BACKGROUND ignore # $ cmd appops get com.microsoft.office.word READ_EXTERNAL_STORAGE: allow; time=+1h24m47s68ms ago WRITE_EXTERNAL_STORAGE: allow; time=+1h24m47s68ms ago RUN_IN_BACKGROUND: ignore; time=+1h23m47s145ms ago; rejectTime=+78ms ago
L'outil dumpsys https://stackoverflow.com/questions/11201659/whats-the-android-adb-shell-dumpsys-tool-and-what-are-its-benefits
$ export app # Methode recherche $ pm list packages| grep sound # puis $ app=com.samsung.knox.appsupdateagent $ dumpsys | grep -A18 "Package \[$app\]" ... # plus d'infos sur un package $ dumpsys package com.orange.appshop # bloc nom package, chemin, ... $ dumpsys package com.orange.appshop | grep -A80 "Packages:" # bloc permissions dumpsys package package com.orange.appshop | sed -n '/requested permissions/,/User 0/p'
PackageManager Manpage de pm
# lister applications installées $ pm list packages # lister applications avec tri $ pm list packages | sort # packages désactivés $ pm list packages -d # packages avec chemin installation $ pm list packages -f | grep samsung | sort | sed 's/package:\/system\///' # lister applications avec tri avec du google dedans $ pm list packages | grep google | sort # liste packages triés, sans android,samsung et sec $ pm list packages | grep -Ev 'com.android|com.samsung|com.sec' | sort | sed 's/package:\/system\///' # supprimer une application avec droits user 0 $ pm uninstall --user 0 com.android.chrome # désactiver une application $ pm disable com.samsung.knox.rcp.components # redemarrer téléphone reboot
Ajouter busybox sur un smartphone non root:
mkdir /data/busybox adb push busybox /data/busybox/busybox cd /data/busybox; ./busybox --install export PATH=/data/busybox:$PATH. You should now be able to get access to all the useful busybox applets. mkdir /data/local/tmp/busybox adb push busybox /data/local/tmp/busybox adb shell chmod 0755 /data/local/tmp/busybox/busybox adb shell cd /data/local/tmp/busybox --install ne marche pas, faisons des liens symboliques alias sed='/data/local/tmp/busybox/busybox sed' alias printf='/data/local/tmp/busybox/busybox printf' alias head='/data/local/tmp/busybox/busybox head' alias tail='/data/local/tmp/busybox/busybox tail' for app in $(pm list packages -3 -f | sed 's/package://;s/\.apk.*$/\.apk/') ; do tmp="$(/data/local/tmp/aapt-arm-pie d badging $app)" ; printf "|%s|%s|%s|\n" "$(printf "%s" "$app" | sed -e 's/\/data\/app\///;s/\/.*//')" "$(printf "%s" "$tmp" | grep -m1 package | sed -e "s/package: name='//;s/'.*versionName='/|/;s/'.*$//;")" "$(printf "%s" "$tmp" | grep "application-label-fr:" | sed -e "s/application-label-fr:'//;s/'.*$//;")" | tail -n +1 | head -1 ; done
Hiérarchie du système de fichier sous Android:
Espace libre avec df
$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 1.5G 9.4M 1.5G 1% / tmpfs 1.7G 720K 1.7G 1% /dev tmpfs 1.7G 0 1.7G 0% /mnt tmpfs 1.7G 0 1.7G 0% /mnt/secure /dev/block/dm-0 4.1G 3.9G 196M 96% /system /dev/block/sda15 193M 2.0M 191M 2% /cache /dev/block/sda3 16M 2.3M 13M 15% /efs /dev/block/sda13 4.8M 44K 4.8M 1% /persdata/absolute /dev/block/sdd1 1.8M 552K 1.3M 29% /cpefs tmpfs 1.7G 0 1.7G 0% /storage /dev/block/dm-1 25G 1.1G 23G 5% /data /data/knox/tmp_sdcard 25G 1.1G 23G 5% /mnt/knox /data/knox/secure_fs/enc_media 25G 1.1G 23G 5% /mnt/shell/enc_media /data/media 25G 1.1G 23G 5% /storage/emulated /data/knox/secure_fs/enc_user 25G 1.1G 23G 5% /data/enc_user /mnt/shell/enc_media 25G 1.1G 23G 5% /mnt/shell/enc_emulated
partitions > https://android.stackexchange.com/questions/5232/how-can-i-view-the-android-internal-partition-table
https://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/
partition avec IMEI et codes déverrouillage mobile, à sauvegarder avant tout changement de ROM, d'ailleurs débloquer téléphone avant de flasher quoi que ce soit
Voir adb
Les firewall sans root Android utilisent la fonctionnalité VPN et redirigent tout le trafic dans un VPN local, le filtrage s'effectue à ce niveau.
Comment cela se passe si nous voulons utiliser un vrai VPN en plus ? aucune idée.
Attention au mode économie d'énergie, il fait tomber les connexions VPN dans certains cas, voir https://sebsauvage.net/links/?bBlGiw