4 votes

Comment obtenir la température de mon téléphone via ADB ?

Au travail, je réalise beaucoup de tests automatisés de logiciels sur des téléphones Android. Ils sont branchés en permanence sur une machine de développement, et on leur donne des tâches à exécuter via ADB. J'aimerais beaucoup pouvoir surveiller leurs températures, et le faire via ADB serait le moyen le plus simple.

9voto

John Dallman Points 123

C'est simple, sur Android 10 ou plus, une fois que vous avez trouvé comment faire.

adb shell dumpsys thermalservice

Sur mon Samsung A52 5G avec Android 12, cela donne, avec des valeurs apparemment en Celsius.

IsStatusOverride: false
ThermalEventListeners:
        callbacks: 1
        killed: false
        broadcasts count: -1
ThermalStatusListeners:
        callbacks: 4
        killed: false
        broadcasts count: -1
Thermal Status: 0
Cached temperatures:
        Temperature{mValue=0.0, mType=2, mName=SUBBAT, mStatus=0}
        Temperature{mValue=0.0, mType=2, mName=SUBBATRAW, mStatus=0}
        Temperature{mValue=25.6, mType=0, mName=AP, mStatus=0}
        Temperature{mValue=25.7, mType=5, mName=PA, mStatus=0}
        Temperature{mValue=23.8, mType=2, mName=BAT, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRB, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRF, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRP, mStatus=0}
        Temperature{mValue=0.0, mType=4, mName=USB, mStatus=0}
HAL Ready: true
HAL connection:
        ThermalHAL 2.0 connected: yes
Current temperatures from HAL:
        Temperature{mValue=25.6, mType=0, mName=AP, mStatus=0}
        Temperature{mValue=23.8, mType=2, mName=BAT, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRB, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRF, mStatus=0}
        Temperature{mValue=24.7, mType=3, mName=LRP, mStatus=0}
        Temperature{mValue=25.7, mType=5, mName=PA, mStatus=0}
        Temperature{mValue=0.0, mType=2, mName=SUBBAT, mStatus=0}
        Temperature{mValue=0.0, mType=2, mName=SUBBATRAW, mStatus=0}
        Temperature{mValue=0.0, mType=4, mName=USB, mStatus=0}
Current cooling devices from HAL:
Temperature static thresholds from HAL:

Ma tablette chinoise Android 10 très bon marché dit :

IsStatusOverride: false
ThermalEventListeners:
        callbacks: 1
        killed: false
        broadcasts count: -1
ThermalStatusListeners:
        callbacks: 2
        killed: false
        broadcasts count: -1
Thermal Status: 0
Cached temperatures:
        Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0}
HAL Ready: true
HAL connection:
        ThermalHAL 2.0 connected: yes
Current temperatures from HAL:
        Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0}
Current cooling devices from HAL:
        CoolingDevice{mValue=100, mType=0, mName=test cooling device}

C'est probablement la configuration par défaut dans Android 10.

Le service Android sous-jacent pour cela est un peu compliqué . Il est dit que HAL 2.0 est apparu à Android 10, et que les versions précédentes n'avaient que HAL 1.0. Le seul appareil pré-Android 10 que j'ai essayé jusqu'à présent était un Black Shark 2 avec Android 9, où dumpsys thermalservice n'a produit aucun résultat.

Jusqu'à présent, je n'ai compris qu'une partie des valeurs de mName. Il semble évident que les noms varient d'un fabricant à l'autre, mais les valeurs mType semblent être cohérentes.

  • AP = Application Processor - peut-être le SoC, ou le CPU ? mType 0.
  • BAT = BATTERY = Batterie. mType 2, ce qui rend très plausible le fait que SUBBAT et SUBBATRAW soient liés à une batterie, comme leurs noms le suggèrent.
  • CPU = CPU. mType 0.
  • GPU = GPU. mType 1.
  • NPU = Neural Processing Unit ? mType 9.
  • PA = Amplificateur de puissance. mType 5.
  • SKIN = boîtier de l'appareil, vraisemblablement. mType 3. Cela suggère que LRB, LRF et LRP sur le Samsung ont quelque chose à voir avec le boîtier ou les boutons, et que le seul capteur sur la tablette bon marché surveille le boîtier.
  • USB = Universal Serial Bus, vraisemblablement. mType 4.

Fuente pour certains d'entre eux.

Les valeurs mStatus correspondent à l'état d'étranglement de la puissance, de 0 (pas d'étranglement) à 6 (arrêt pour cause de chaleur).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X