Outils pour utilisateurs

Outils du site


Panneau latéral

android:systeme

Outils sytème

aapt

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

appops

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_STATE
Ce 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

dumpsys

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'

pm

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

busybox

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

Fonctionnement

Système de fichiers

Hiérarchie du système de fichier sous Android:

  • version très courte: il change légèrement d'une version à un autre
  • version courte:
    • /Library au lieu de /lib
    • /Users au lieu de /home ou /usr/home
    • /var/root au lieu de /root
    • /Applications
    • /Network
    • /System
  • version limpide
  • version officielle
  • de la documentation plus explicative ici ou ou encore

Stockage

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/

BootLoader

Recovery

EFS

Debug depuis PC

Voir adb

Pare-feu

Root

Non root

  • netguard, opensource, je l'avais déployé en 2017 sur un téléphone sans surveillance directe, puis je m'étais aperçu qu'il tombait, pour quelles raisons ? jamais creusé
  • NoRoot Firewall app.greyshirts.firewall, pas opensource mais pas eu le problème cité au-dessus.

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

android/systeme.txt · Dernière modification: 2019/04/18 16:42 de xanatos