Outils pour utilisateurs

Outils du site


adb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
adb [2018/07/23 12:49] – [Supprimer une application] simonadb [2026/08/22 15:34] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-====== Adb ====== 
-Un [[https://maly.io/@marsxyz/100397802696303439|toot sur Mastodon]] a attiré mon attention sur **adb** qui permet apparemment de supprimer les applications qu'on ne sait pas supprimer depuis l'interface d'android (mais uniquement désactiver) comme Facebook, les Google Apps, etc.. 
- 
-===== Mettre son smartphone en "mode debug" ===== 
-[[https://www.frandroid.com/comment-faire/tutoriaux/229753_questcequelemodedebogageusb|Frandroid]] nous indique comment activer le "mode développeur" 
- 
-Il faut aller dans les **Paramètres**, puis dans **À propos du téléphone** et toucher 7 fois la case **Numéro de build**. Le menu **Options pour les développeurs** apparaît alors dans les paramètres systèmes. 
-(Ça donne l'impression d'être une mauvaise astuce pour un jeux vidéo, mais ça marche...) 
- 
-Dans le menu pour les développeurs, on trouve une option "Débogage USB" qu'on peut activer. 
- 
-===== Installer adb ===== 
-<code bash> 
-$ sudo apt install adb 
-</code> 
- 
-===== Jouer avec adb ===== 
-==== Liste des appareils branchés ==== 
-J'ai du lancer plusieurs fois la commande :  
-<code bash> 
-$ adb devices 
-List of devices attached 
-* daemon not running. starting it now on port 5037 * 
-free(): invalid next size (fast) 
-ADB server didn't ACK 
-* failed to start daemon * 
-error: cannot connect to daemon 
- 
-$ adb devices 
-List of devices attached 
-* daemon not running. starting it now on port 5037 * 
-* daemon started successfully * 
-BJ030262 unauthorized 
-</code> 
- 
-Un pop-up apparait sur le téléphone pour demander si on autorise l'accès à cet ordinateur. Une fois qu'on a validé, on peut relancer la commande : 
-<code bash> 
-$ adb devices 
-List of devices attached 
-BJ030262 device 
-</code> 
- 
-==== Voir les logs du téléphone ==== 
-La commande "logcat" permet de voir les logs du téléphone mais ça spamme vraiment beaucoup...  
-<code bash> 
-$ adb logcat  
-</code> 
- 
-==== Se connecter sur le téléphone ==== 
-<code bash> 
-$ adb shell 
-1|bardock:/ $ 
-</code> 
- 
-Liste des programmes installés sur le téléphone : 
-<code bash> 
-$ a 
-acpi           am             app_process    app_process64  appops         atrace         autoload 
-alias          antradio_app   app_process32  applypatch     appwidget      audioflacapp 
- 
-$ b                                                                                           
-base64       bcc          bg           blockdev     brctl        bu           bugreportz   bzcat 
-basename     bdt          bind         bmgr         break        bugreport    builtin 
- 
-$ c                                                                                           
-cal                  chcon                chroot               comm                 cpio 
-case                 chdir                cksum                command              cplay 
-cat                  chgrp                clear                content              curl 
-cd                   chmod                cmd                  continue             cut 
-chamomile_provision  chown                cmp                  cp 
- 
-$ d                                                                                           
-dalvikvm                  dex2oat                   dirname                   dpm 
-dalvikvm32                dexdump                   dmesg                     du 
-dalvikvm64                dexlist                   do                        dumpsys 
-date                      df                        done 
-dd                        diag_callback_sample      dos2unix 
- 
-$ e                                                                                           
-e_loop    echo      elif      env       eval      exit      export 
-ebtables  egrep     else      esac      exec      expand    expr 
- 
-$ f                                                                                           
-fallocate            fgrep                fm_qsoc_patches      for 
-false                fi                   fmconfig             free 
-fc                   find                 fmfactorytest        function 
-fg                   flock                fmfactorytestserver  functions 
- 
-$ g                                                                                           
-getenforce   getopts      global       grep         gzip 
-getevent     getprop      gptest       groups 
- 
-$ h                                                                                           
-hash             hci_qcomm_init   head             history          hostname         hwclock 
- 
-$ i                                                                                           
-id                   ime                  insmod               iorenice             ip6tables-save 
-if                   in                   integer              ip                   iptables 
-ifconfig             inotifyd             ioctl                ip6tables            iptables-restore 
-iftop                input                ionice               ip6tables-restore    iptables-save 
- 
-$ j 
-jobs                                                                                        
- 
-$ k                                                                                           
-kill     killall 
- 
-$ l                                                                                           
-ld.mc        linker       load_policy  logcat       logwrapper   lsmod 
-let          linker64     local        login        losetup      lsof 
-let]         ln           log          logname      ls           lsusb 
- 
-$ m                                                                                           
-make_ext4fs          mknod                mm-qjpeg-enc-test    mmi_agent32          monkey 
-make_f2fs            mkswap               mm-qomx-idec-test    mmi_agent64          more 
-md5sum               mktemp               mm-qomx-ienc-test    mmi_debug            mount 
-media                mm-qcamera-app       mm-vidc-omx-test     mmi_diag             mountpoint 
-mkdir                mm-qjpeg-dec-test    mmc_utils_extended   modinfo              mv 
- 
-$ n                                                                                           
-nameref      nandread     netstat      newfs_msdos  nice         nl           nl_listener  nohup 
- 
-$ o                                                                                           
-oatdump  od 
- 
-$ p                                                                                           
-paste     patchoat  pidof     ping6     pm        print     printf    ps 
-patch     pgrep     ping      pkill     pmap      printenv  prlimit   pwd 
- 
-$ q                                                                                           
-qjpeg-dma-test            qmi-framework-tests/      qmi_simple_ril_test 
- 
-$ r                                                                                           
-r            readlink     realpath     renice       return       rmmod        run-as 
-radish       readonly     reboot       requestsync  rm           rmnetcli     runcon 
-read         readwritenv  rename       restorecon   rmdir        route 
- 
-$ s                                                                                           
-schedtest      sendevent      setenforce     sha1sum        source         suspend 
-screencap      sensors_test   setprop        shift          split          svc 
-screenrecord   sensorservice  setsid         sleep          start          swapoff 
-secdiscard     seq            settings       sm             stat           swapon 
-sed            service        setup_fs       sort           stop           sync 
-select         set            sh             soter_client   strings        sysctl 
- 
-$ t                                                                                           
-tac                  telecom              times                top                  truncate 
-tail                 test                 tinycap              touch                tty 
-tar                  test_module_pproc    tinymix              toybox               type 
-taskset              then                 tinypcminfo          tr                   typeset 
-tc                   time                 tinyplay             trap 
-tee                  timeout              toolbox              true 
- 
-$ u                                                                                           
-uiautomator  umask        unalias      uniq         unset        uptime 
-ulimit       umount       uname        unix2dos     until        usleep 
- 
-$ v                                                                                           
-vendor_cmd_tool  vmstat 
- 
-$ w                                                                                           
-wait       wc         wdsdaemon  whence     which      while      whoami     wm 
- 
-$ x                                                                                           
-xargs  xxd 
- 
-$ y  
-(rien) 
- 
-$ z 
-(rien)                                                                                           
-</code> 
- 
-==== Récupérer la liste des applications installées ==== 
-<code bash> 
-1|bardock:/ $ pm list packages                                                                            
-package:com.bq.wizardbq.insurance 
-(...) 
-package:com.google.android.inputmethod.latin 
-</code> 
- 
-On peut bien évidemment filtrer cette liste avec [[grep]] : 
-<code bash> 
-bardock:/ $ pm list packages | grep google                                                                
-package:com.google.android.youtube 
-package:com.google.android.ext.services 
-package:com.google.android.googlequicksearchbox 
-package:com.google.android.onetimeinitializer 
-package:com.google.android.ext.shared 
-package:com.google.android.apps.messaging 
-package:com.google.android.configupdater 
-package:com.google.android.marvin.talkback 
-package:com.google.android.deskclock 
-package:com.google.android.gm 
-package:com.google.android.apps.tachyon 
-package:com.google.android.instantapps.supervisor 
-package:com.google.zxing.client.android 
-package:com.google.android.setupwizard 
-package:com.google.android.music 
-package:com.google.android.dialer 
-package:com.google.android.apps.docs 
-package:com.google.android.apps.maps 
-package:com.google.android.webview 
-package:com.google.android.syncadapters.contacts 
-package:com.google.android.calculator 
-package:com.google.android.packageinstaller 
-package:com.google.android.gms 
-package:com.google.android.gsf 
-package:com.google.android.ims 
-package:com.google.android.tts 
-package:com.google.android.partnersetup 
-package:com.google.android.videos 
-package:com.google.android.feedback 
-package:com.google.android.printservice.recommendation 
-package:com.google.android.apps.photos 
-package:com.google.android.calendar 
-package:com.google.android.gsf.login 
-package:com.google.android.backuptransport 
-package:com.google.android.talk 
-package:com.google.android.inputmethod.latin 
-</code> 
- 
-Si je regarde un peu les applications qui sont désactivées dans mon téléphones, je trouve :  
-  * L'agenda de base (J'utilise Etar) 
-  * L'appareil photo de base (J'utilise OpenCamera) 
-  * Chrome (J'utilise IceCatMobile) 
-  * Clavier Google (J'utilise MessagEase) 
-  * Contacts (J'utilise Simple Contacts) 
-  * Drive (J'utilise Nextcloud) 
-  * Duo 
-  * Gmail 
-  * Google Play Musique 
-  * Google Play Films et séries 
-  * Google 
-  * Hangouts 
-  * Magnétophone 
-  * Maps 
-  * Messages (J'utilise Silence) 
-  * Photos (J'utilise Simple Galery) 
-  * YouTube (J'utilise NewPipe) 
- 
-==== Avoir plus d'informations sur une applications ==== 
-<code bash> 
-bardock:/ $ dumpsys | grep -A 50 "Package .*youtube"                                                      
-Can't find service: android.service.gatekeeper.IGateKeeperService 
-Can't find service: netd 
-  Package [com.google.android.youtube] (8fe1a80): 
-    userId=10090 
-    pkg=Package{ac2e252 com.google.android.youtube} 
-    codePath=/system/app/YouTube 
-    resourcePath=/system/app/YouTube 
-    legacyNativeLibraryDir=/system/app/YouTube/lib 
-    primaryCpuAbi=arm64-v8a 
-    secondaryCpuAbi=null 
-    versionCode=1307553400 minSdk=21 targetSdk=26 
-    versionName=13.07.55 
-    splits=[base] 
-    apkSigningVersion=1 
-    applicationInfo=ApplicationInfo{15f5ad5 com.google.android.youtube} 
-    flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP KILL_AFTER_RESTORE RESTORE_ANY_VERSION LARGE_HEAP ] 
-    privateFlags=[ HAS_DOMAIN_URLS RESIZEABLE_ACTIVITIES ] 
-    dataDir=/data/user/0/com.google.android.youtube 
-    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity] 
-    timeStamp=2009-01-01 00:00:00 
-    firstInstallTime=2009-01-01 00:00:00 
-    lastUpdateTime=2009-01-01 00:00:00 
-    signatures=PackageSignatures{35b8923 [7d3bce25]} 
-    installPermissionsFixed=false installStatus=1 
-    pkgFlags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP KILL_AFTER_RESTORE RESTORE_ANY_VERSION LARGE_HEAP ] 
-    declared permissions: 
-      com.google.android.youtube.permission.C2D_MESSAGE: prot=signature, INSTALLED 
-    install permissions: 
-      com.google.android.c2dm.permission.RECEIVE: granted=true 
-      android.permission.USE_CREDENTIALS: granted=true 
-      com.google.android.providers.gsf.permission.READ_GSERVICES: granted=true 
-      com.google.android.youtube.permission.C2D_MESSAGE: granted=true 
-      android.permission.MANAGE_ACCOUNTS: granted=true 
-      android.permission.SYSTEM_ALERT_WINDOW: granted=true 
-      android.permission.NFC: granted=true 
-      android.permission.RECEIVE_BOOT_COMPLETED: granted=true 
-      com.google.android.gms.permission.AD_ID_NOTIFICATION: granted=true 
-      android.permission.INTERNET: granted=true 
-      android.permission.GET_PACKAGE_SIZE: granted=true 
-      android.permission.ACCESS_NETWORK_STATE: granted=true 
-      android.permission.VIBRATE: granted=true 
-      android.permission.ACCESS_WIFI_STATE: granted=true 
-      android.permission.WAKE_LOCK: granted=true 
-    User 0: ceDataInode=1139683 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=3 
-      lastDisabledCaller: com.android.settings 
-      gids=[3003] 
-</code> 
- 
-==== Supprimer une application ==== 
-Commençons par supprimer **chrome** :  
-<code bash> 
-bardock:/ $ pm list packages | grep chrome                                                                
-package:com.android.chrome 
-</code> 
- 
-On va utiliser la commande [[pm]] : 
-<code bash> 
-127|bardock:/ $ pm --help 
-Error: unknown command '--help' 
-usage: pm path [--user USER_ID] PACKAGE 
-       pm dump PACKAGE 
-       pm install [-lrtsfd] [-i PACKAGE] [--user USER_ID] [PATH] 
-       pm install-create [-lrtsfdp] [-i PACKAGE] [-S BYTES] 
-               [--install-location 0/1/2] 
-               [--force-uuid internal|UUID] 
-       pm install-write [-S BYTES] SESSION_ID SPLIT_NAME [PATH] 
-       pm install-commit SESSION_ID 
-       pm install-abandon SESSION_ID 
-       pm uninstall [-k] [--user USER_ID] PACKAGE 
-       pm set-installer PACKAGE INSTALLER 
-       pm move-package PACKAGE [internal|UUID] 
-       pm move-primary-storage [internal|UUID] 
-       pm clear [--user USER_ID] PACKAGE 
-       pm enable [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm disable [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm default-state [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm hide [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT 
-       pm grant [--user USER_ID] PACKAGE PERMISSION 
-       pm revoke [--user USER_ID] PACKAGE PERMISSION 
-       pm reset-permissions 
-       pm set-app-link [--user USER_ID] PACKAGE {always|ask|never|undefined} 
-       pm get-app-link [--user USER_ID] PACKAGE 
-       pm set-install-location [0/auto] [1/internal] [2/external] 
-       pm get-install-location 
-       pm set-permission-enforced PERMISSION [true|false] 
-       pm trim-caches DESIRED_FREE_SPACE [internal|UUID] 
-       pm create-user [--profileOf USER_ID] [--managed] [--restricted] [--ephemeral] [--guest] USER_NAME 
-       pm remove-user USER_ID 
-       pm get-max-users 
- 
-NOTE: 'pm list' commands have moved! Run 'adb shell cmd package' 
-  to display the new commands. 
- 
-pm path: print the path to the .apk of the given PACKAGE. 
- 
-pm dump: print system state associated with the given PACKAGE. 
- 
-pm install: install a single legacy package 
-pm install-create: create an install session 
-    -l: forward lock application 
-    -r: replace existing application 
-    -t: allow test packages 
-    -i: specify the installer package name 
-    -s: install application on sdcard 
-    -f: install application on internal flash 
-    -d: allow version code downgrade (debuggable packages only) 
-    -p: partial application install 
-    -g: grant all runtime permissions 
-    -S: size in bytes of entire session 
- 
-pm install-write: write a package into existing session; path may 
-  be '-' to read from stdin 
-    -S: size in bytes of package, required for stdin 
- 
-pm install-commit: perform install of fully staged session 
-pm install-abandon: abandon session 
- 
-pm set-installer: set installer package name 
- 
-pm uninstall: removes a package from the system. Options: 
-    -k: keep the data and cache directories around after package removal. 
- 
-pm clear: deletes all data associated with a package. 
- 
-pm enable, disable, disable-user, disable-until-used, default-state: 
-  these commands change the enabled state of a given package or 
-  component (written as "package/class"). 
- 
-pm grant, revoke: these commands either grant or revoke permissions 
-    to apps. The permissions must be declared as used in the app's 
-    manifest, be runtime permissions (protection level dangerous), 
-    and the app targeting SDK greater than Lollipop MR1. 
- 
-pm reset-permissions: revert all runtime permissions to their default state. 
- 
-pm get-install-location: returns the current install location. 
-    0 [auto]: Let system decide the best location 
-    1 [internal]: Install on internal device storage 
-    2 [external]: Install on external media 
- 
-pm set-install-location: changes the default install location. 
-  NOTE: this is only intended for debugging; using this can cause 
-  applications to break and other undersireable behavior. 
-    0 [auto]: Let system decide the best location 
-    1 [internal]: Install on internal device storage 
-    2 [external]: Install on external media 
- 
-pm trim-caches: trim cache files to reach the given free space. 
- 
-pm create-user: create a new user with the given USER_NAME, 
-  printing the new user identifier of the user. 
- 
-pm remove-user: remove the user with the given USER_IDENTIFIER, 
-  deleting all data associated with that user 
-</code> 
- 
-L'option "--user 0" semble indispensable. Il y a également l'option "-k" qui permet de garder les données et caches du programme. 
-<code bash> 
-bardock:/ $ pm uninstall com.android.chrome 
-Failure [DELETE_FAILED_INTERNAL_ERROR] 
-bardock:/ $ pm uninstall --user 0 com.android.chrome                                                      
-Success 
-</code> 
- 
-Après avoir désinstallé Chrome, j'étais à 8,78 Go utilisé par les applications. On continue! 
-Hop, on vire "Google Musique" : 
-<code bash> 
-bardock:/ $ pm uninstall --user 0 com.google.android.music                                                
-Success 
-</code> 
- 
-Le plus compliqué reste de trouver le nom du package à supprimer. On peut chercher avec [[dumpsys]], comme par exemple pour Google Vidéos : 
-<code bash> 
-$ dumpsys | grep -A 50 "Package .*videos"  
-(...) 
-versionName=4.1.6.13 
-</code> 
- 
-On peut alors comparer dans le menu et vérifier que la version correspond. 
- 
-  * L'agenda de base : com.android.providers.calendar 
-  * L'appareil photo de base : com.google.android.calendar **?** 
-  * Chrome : com.android.chrome 
-  * Clavier Google :  
-  * Contacts : 
-  * Drive :  
-  * Duo :  
-  * Gmail :  
-  * Google Play Musique : com.google.android.music 
-  * Google Play Films et séries : com.google.android.videos 
-  * Google : com.google.android.googlequicksearchbox **?** 
-  * Hangouts :  
-  * Magnétophone : com.google.android.talk **?** 
-  * Maps : com.google.android.apps.maps **?** 
-  * Messages : com.google.android.apps.messaging **?** 
-  * Photos : com.google.android.apps.photos 
-  * YouTube : com.google.android.youtube 
  
adb.1532350162.txt.gz · Dernière modification : (modification externe)