1 votes

Existe-t-il un moyen de supprimer définitivement des alarmes spécifiques (fantômes) à l'aide du shell adb ?

Mon téléphone a mystérieusement créé une alarme fantôme, ce qui signifie qu'aucune application GUI ou widget n'affiche cette alarme sur mon téléphone et que rien ne me permet de la régler, de la supprimer ou de la visualiser.

Utilisation adb dumpsys alarm J'ai trouvé l'alarme incriminée, qui se déclenche du lundi au vendredi à 6 h 30 et qui est incroyablement agaçante.

Utilisation adb Je suis en mesure de trouver l'alarme quotidienne, ce qui signifie que je suis en mesure de trouver l'ID de l'alarme, qui dans mon cas, en ce moment, est ff691fe .

Existe-t-il un moyen de supprimer cette alarme de façon permanente en utilisant adb ? Je suppose que cet identifiant particulier n'est probablement pas l'identifiant racine, mais peut-être quelqu'un sait-il comment je peux le trouver ? Je vais continuer à chercher.

Je viens d'essayer (avec le résultat de la commande)

b0q:/ $ service call alarm 3 i32 ff691fe
Result: Parcel(00000000    '....')

et cela n'a malheureusement pas fonctionné. Une chose que j'ai soupçonnée et confirmée est que l'ID change après l'écoulement d'un délai, mais je n'ai pas encore déterminé comment obtenir un ID parent (probablement mal nommé) pour l'alarme. De plus, il est probable que j'aurais besoin de cet identifiant pour réussir à supprimer définitivement les alarmes.

Toute aide à ce sujet serait grandement appréciée. Cela semble être un énorme bogue dans le système d'exploitation Android.

1voto

Forrestfire Points 8450

OK, il s'avère que le service call a fait travail, pour autant que je puisse en juger. J'ai juste eu besoin de modifier un peu la commande.

Le plus important était de déterminer correctement l'identité de l'alarme. En utilisant le lien aquí On peut y trouver l'ID. Notez que l'identifiant se trouve dans une section spécifique de la base de données dumpsys alarm commande. Le format de sortie de cette commande est déroutant au premier abord, mais vous recherchez essentiellement quelque chose comme :

donde ### Il s'agit d'un nombre représentant le nombre d'alarmes (et non le nombre d'alertes). ### littéralement)

### pending alarms:
...
...
...
    RTC_WAKEUP #88: Alarm{5d74fad type 0 origWhen 1677671101000 whenElapsed 1028621179 com.sec.android.app.clockpackage}
      tag=*walarm*:com.samsung.sec.android.clockpackage.alarm.UPCOMING_ALERT
      type=RTC_WAKEUP origWhen=2023-03-01 04:45:01.000 window=0 exactAllowReason=permission repeatInterval=0 count=0 flags=0x5
      policyWhenElapsed: requester=+7h4m50s571ms app_standby=-1m20s270ms device_idle=-- battery_saver=-55s468ms tare=-2m1s488ms gms_manager=--
      whenElapsed=+7h4m50s571ms maxWhenElapsed=+7h4m50s571ms
      operation=PendingIntent{493d673: PendingIntentRecord{4efa417 com.sec.android.app.clockpackage broadcastIntent}}
      idle-options=Bundle[{android.pendingIntent.backgroundActivityAllowed=false, android:broadcast.temporaryAppAllowlistReasonCode=302, android:broadcast.temporaryAppAllowlistDuration=10000, android:broadcast.temporaryAppAllowlistReason=, android:broadcast.temporaryAppAllowlistType=0}]
    RTC_WAKEUP #89: Alarm{e3b8930 type 0 origWhen 1677671507448 whenElapsed 1029027627 com.samsung.android.rubin.app}
      tag=*walarm*:com.samsung.android.rubin.alarm.ACTION_PENDING_INTENT
      type=RTC_WAKEUP origWhen=2023-03-01 04:51:47.448 window=+2h0m0s0ms repeatInterval=0 count=0 flags=0x0
      policyWhenElapsed: requester=+7h11m37s19ms app_standby=-1m20s270ms device_idle=-- battery_saver=-55s352ms tare=-1h17m15s404ms gms_manager=--
      whenElapsed=+7h11m37s19ms maxWhenElapsed=+9h11m37s19ms
      operation=PendingIntent{e4639a9: PendingIntentRecord{84e3864 com.samsung.android.rubin.app broadcastIntent}}
...
...
...

Dans cet exemple, RTC_WAKEUP #88 est l'alarme en cours. Dans cette chaîne, la sortie Alarm{5d74fad type indique l'ID de l'alarme, qui est 5d74fad .

Maintenant, l'exécution :

service call alarm 3 s16 5d74fad

a supprimé mon alarme. Je ne peux pas dire si cela fonctionne pour d'autres ou non. Cela a fonctionné pour moi. Le résultat de la commande est au mieux nébuleux. Il ne me restait plus qu'à attendre le lendemain. Une chose que j'ai remarquée, cependant, c'est que lorsque j'ai exécuté cette commande, mon téléphone est passé à l'heure GMT (plutôt qu'à l'heure locale). Il suffit d'aller dans les paramètres de l'heure de la date et d'activer/désactiver l'heure de la lumière du jour automatique et l'heure de la date automatique pour régler ce problème.

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