Une solution pour le problème de réveil sur le Milestone (Android) ?

avril 21, 2010 dans Android, Milestone

Tout est rentré dans l’ordre pour moi ou presque, à confirmer par d’autres utilisateurs :) (Faut espoir mais un correctif est très proche, voir « EDIT » à la fin du post)

Voir EDIT4, un correctif extrait de la mise à jour canadienne est dispo, en attendant celui pour la France :)

Dans un précédent article, je parlais du soucis avec le réveil qui sonnait en retard ou ne sonnait pas du tout, sur le Milestone et d’autres téléphones Android.

Aujourd’hui, j’ai testé une petite application réalisée par nadlabak,  disponible sur le forum de Alldroid.

Cette application va vérifier que le processeur de votre smartphone ne s’est pas mis en « veille prolongée »

Voici la marche à suivre :

1) Rooter votre Milestone : voir ici

2) Télécharger et installer sur votre téléphone l’application « AlarmTester.apk » : cliquer ici

3) Redémarrer le Milestone, et accepter le message qui va s’afficher pour demander si vous autorise l’accès root à l’application. (cliquer sur « always »)

4) Testez votre alarme, pour moi ça fonctionne très bien à présent !

Voici le message original de l’auteur :

For those who still want to test the alarm issue, attached is a new version of the AlarmTester.
After reboot, it schedules two alarms – one that should wake the CPU every 30s and another one for every 10s that should not wake the CPU (to test whether the CPU actually falls asleep). It also dumps the status of wakelocks, therefore it needs root permissions.
The output (AlarmLog.txt in the root of the SD card) looks like this:

  W: 14:53:09
 GKI_LOCK_TIMER_0 PowerManagerService
 A: 14:53:10
 GKI_LOCK_TIMER_0 PowerManagerService
 A: 14:53:20
 GKI_LOCK_TIMER_0 PowerManagerService
 A: 14:53:30
 GKI_LOCK_TIMER_0 PowerManagerService
 W: 14:53:39
 PowerManagerService
 A: 14:53:40
 PowerManagerService
 A: 14:53:55
 PowerManagerService
 W: 14:54:13
 PowerManagerService 

Lines beginning with W belongs to the alarms that should wake the CPU. If they are not exactly 30s apart, there is a problem…
When the issue will be corrected, then during sleep the W lines will be perfectly regular in time and the A lines will only follow the W lines (the moments of arousal).

En regardant les logs, je me suis aperçu qu’après un long moment de veille, la période des 30 secondes fixée par l’application était décalée, puis tout est rentré dans l’ordre..

EDIT : Après des dizaines de test, un premier retard du réveil de 3 minutes est à noter…

Affaire à suivre donc !

EDIT 2 : Une personne de l’équipe technique de Motorola a confirmé qu’il y aura un correctif du firmware.. Je vous tiens informé dès que les (bonnes) nouvelles arrivent !

EDIT 3 : Après une longue période de veille cette nuit, le réveil n’a pas sonné ce matin… Je pensais qu’avec l’application qui test le réveil, ça aurai stimulé le CPU pour qu’il se réveille à intervalles réguliers, mais non, nous en sommes donc au point de départ.. Je vous tiens informé dans ce post dès qu’il y a du nouveau !

EDIT 4 : Le noyau de la nouvelle version canadienne (Telus) de la mise à jour 2.1 du firmware corrige ce problème, un espoir que ça arrive bientôt pour nous :)

Pour le moment, voici la marche à suivre (ça ne modifie en rien votre téléphone, on touche juste au kernel) :

Solution n°1 :

- Télécharger et extraire le « .sbf » (extrait du firmware Telus SHOLS_U2_03.10.0) : cliquez ici

- Télécharger et installer RSD Lite 4.6 : cliquez ici

- Démarrer le téléphone en bootloader

* Ouvrir le clavier

* Appuyer sur le « PAD vers le haut » + « mise en marche »

* Le téléphone va démarrer avec un écran noir et juste quelques écritures

- Brancher le téléphone en USB, démarrer RSD Lite et appliquer le .sbf

Si vous avez windows Vista ou Windows 7 et que RSD Lite ne flash pas, rendez-vous ici.

Solution n°2 :

- Télécharger ADBRecovery

- Télécharger le « boot.img » extrait du firmware Telus SHOLS_U2_03.10.0 : cliquez ici

- Copier « boot.img » à la racine de votre carte SD

- Télécharger ADBRecovery : cliquez ici

- Extraire les fichiers de « in_sd_root » à la racine de votre carte SD

- Redémarrer en « recovery » :

* Rester appuyer sur le bouton « appareil photo » + « mise en marche » jusqu’au moment où le téléphone va afficher un triangle jaune.

* Appuyer sur les boutons « appareil photo » + « volume + »

- Appliquer « update.zip »

- Lancer ADBRecovery et taper la commande :

flash_image boot /sdcard/boot.img

Ps : ça ne touche que le Kernel, pas les fonctions du téléphone !

Logiquement le téléphone redémarre et le problème de réveil est corrigé :)