Ster97 Posté(e) 6 septembre 2013 Share Posté(e) 6 septembre 2013 (modifié) Améliorer son autonomie en supprimant le wakelock de Stockage Multimédia Salut à tous ! :) Vous êtes nombreux à vous plaindre d'une consommation excessive de "stockage multimédia", vidant ainsi votre batterie à une vitesse record; c'est en effet un problème récurrent mais il est facile d'y remédier à condition d'être root et d'avoir une ROM deodex, voilà pourquoi j'ai décidé d'ouvrir ce topic. Tout d'abord, quest-ce qu'un "wakelock" ?C'est bien simple, un wakelock est lorsqu'un programme tourne en tâche de fond et maintient votre téléphone en éveil alors que vous ne vous en servez pas. Cela empêche donc l'appareil de passer en mode "deepsleep" (= sommeil profond) et accélère le drainage de la batterie. Comment l'identifier ?Un wakelock peut être causé par n'importe quelle application. Lorsque cela arrive, votre téléphone consomme énormément (et chauffe) alors que vous ne vous en servez pas. Afin de s'assurer que cela vient bien d'un wakelock il suffit d'aller dans vos stats de batterie, et de cliquer sur le graphique, la barre "éveil" devrait être pleine, comme sur le screenshot ci-dessous :(Cliquer sur l'image pour agrandir) Ensuite pour identifier l'application qui en est la cause, il suffit en général de regarder dans les stats l'application en tête de liste. (Cliquer sur l'image pour agrandir) Mais ce n'est pas toujours le cas, en effet le résultat est flagrant sur mon screenshot car mon téléphone venait d'être allumé et que je n'avais rien fait d'autre, mais ces stats ne sont pas toujours très précises. Il faudra alors utiliser une application comme BatteryStatsPlus, aller dans l'onglet Wake Usage. Il vous indiquera alors précisément quelles applications tiennent votre téléphone en éveil, et combien de temps.(Cliquer sur l'image pour agrandir) Et enfin, comment y remédier ? Une fois que vous avez clairement identifié la source du problème, c'est tout simple, il vous suffit de flasher un certain zip en recovery, et vous ne serez plus agacé par la consommation excessive de "stockage multimédia" ;)Pour rappel, vous devez préalablement être root, avoir un recovery custom et une ROM deodex, puis :- téléphone éteint, maintenir les touches Home + Volume Haut + Power- sélectionner l'option Wipe cache partition- aller dans Advanced, puis sélectionner Wipe dalvik cache- revenir au menu précédent, et sélectionner Install zip from sdcard- sélectionner le zip préalablement placé sur votre téléphone/carte SD, et confirmer l'opération. Téléchargements :Chaque zip est spécifique à un firmware, pour vérifier quel firmware vous avez, tapez *#1234# dans le clavier téléphonique- Pour 4.2.2 :I9300XXUFME7I9300XXUFME3 - Pour 4.1.2 :I9300XXEMD3I9300XXEME2I9300XXEMF1I9300XXEMF6I9300XXEMG6 Si vous ne trouvez pas le zip correspondant à votre firmware, vous pouvez me le demander, je m'en occuperais, à condition que vous m'envoyiez votre fichier /system/framework/framework.jar ;) Ou bien vous pouvez aussi le créer vous-mêmes :1) Extrayez le fichier Framework.jar de votre téléphone et placez le sur votre ordinateur.2) Téléchargez ApkTool, décompresser l'archive où vous voulez (vous devz avoir le SDK Android sur votre ordinateur)3) Ouvrez-le avec WinRAR et extrayez le fichier classes.dex dans le dossier d'ApkTool.4) Faites glisser le fichier classes.dex sur Quick-Baksmali et patientez, un dossier classout sera alors créé.5) Cherchez le fichier .../classout/android/media/MediaScanner.smali, et ouvrez-le avec un éditeur de texte (Notepad++ est conseillé)6) Trouvez la ligne .method makeEntryFor(Ljava/lang/String;)Landroid/media/MediaScanner$FileEntry; et remplacez le tout (jusqu'à .end method) par ceci : .method makeEntryFor(Ljava/lang/String;)Landroid/media/MediaScanner$FileEntry; .locals 14 .parameter "path" .prologue .line 1470 const/4 v12, 0x0 .line 1472 .local v12, c:Landroid/database/Cursor; :try_start_0 const-string v0, "_" invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_0 const-string v0, "%" invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-eqz v0, :cond_4 :cond_0 const/4 v13, 0x1 .line 1474 .local v13, hasWildCards:Z :goto_0 if-nez v13, :cond_1 iget-boolean v0, p0, Landroid/media/MediaScanner;->mCaseInsensitivePaths:Z if-nez v0, :cond_5 .line 1479 :cond_1 const-string v3, "_data=?" .line 1480 .local v3, where:Ljava/lang/String; const/4 v0, 0x1 new-array v4, v0, [Ljava/lang/String; const/4 v0, 0x0 aput-object p1, v4, v0 .line 1487 .local v4, selectionArgs:[Ljava/lang/String; :goto_1 iget-object v0, p0, Landroid/media/MediaScanner;->mMediaProvider:Landroid/content/IContentProvider; iget-object v1, p0, Landroid/media/MediaScanner;->mFilesUri:Landroid/net/Uri; sget-object v2, Landroid/media/MediaScanner;->FILES_PRESCAN_PROJECTION:[Ljava/lang/String; const/4 v5, 0x0 const/4 v6, 0x0 invoke-interface/range {v0 .. v6}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor; move-result-object v12 .line 1489 invoke-interface {v12}, Landroid/database/Cursor;->moveToFirst()Z move-result v0 if-nez v0, :cond_2 if-eqz v13, :cond_2 iget-boolean v0, p0, Landroid/media/MediaScanner;->mCaseInsensitivePaths:Z if-eqz v0, :cond_2 .line 1494 const-string v3, "_data LIKE ?1 AND lower(_data)=lower(?1)" .line 1495 const/4 v0, 0x1 new-array v4, v0, [Ljava/lang/String; .end local v4 #selectionArgs:[Ljava/lang/String; const/4 v0, 0x0 aput-object p1, v4, v0 .line 1496 .restart local v4 #selectionArgs:[Ljava/lang/String; invoke-interface {v12}, Landroid/database/Cursor;->close()V .line 1497 iget-object v0, p0, Landroid/media/MediaScanner;->mMediaProvider:Landroid/content/IContentProvider; iget-object v1, p0, Landroid/media/MediaScanner;->mFilesUri:Landroid/net/Uri; sget-object v2, Landroid/media/MediaScanner;->FILES_PRESCAN_PROJECTION:[Ljava/lang/String; const/4 v5, 0x0 const/4 v6, 0x0 invoke-interface/range {v0 .. v6}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor; move-result-object v12 .line 1502 :cond_2 invoke-interface {v12}, Landroid/database/Cursor;->moveToFirst()Z move-result v0 if-eqz v0, :cond_8 .line 1503 const/4 v0, 0x0 invoke-interface {v12, v0}, Landroid/database/Cursor;->getLong(I)J move-result-wide v6 .line 1504 .local v6, rowId:J const/4 v0, 0x2 invoke-interface {v12, v0}, Landroid/database/Cursor;->getInt(I)I move-result v11 .line 1505 .local v11, format:I const/4 v0, 0x3 invoke-interface {v12, v0}, Landroid/database/Cursor;->getLong(I)J move-result-wide v9 .line 1506 .local v9, lastModified:J new-instance v5, Landroid/media/MediaScanner$FileEntry; move-object v8, p1 invoke-direct/range {v5 .. v11}, Landroid/media/MediaScanner$FileEntry;-><init>(JLjava/lang/String;JI)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0 .line 1510 if-eqz v12, :cond_3 .line 1511 invoke-interface {v12}, Landroid/database/Cursor;->close()V .line 1514 .end local v3 #where:Ljava/lang/String; .end local v4 #selectionArgs:[Ljava/lang/String; .end local v6 #rowId:J .end local v9 #lastModified:J .end local v11 #format:I .end local v13 #hasWildCards:Z :cond_3 :goto_2 return-object v5 .line 1472 :cond_4 const/4 v13, 0x0 goto :goto_0 .line 1484 .restart local v13 #hasWildCards:Z :cond_5 :try_start_1 const-string v3, "_data LIKE ?1 AND lower(_data)=lower(?1)" .line 1485 .restart local v3 #where:Ljava/lang/String; const/4 v0, 0x1 new-array v4, v0, [Ljava/lang/String; const/4 v0, 0x0 aput-object p1, v4, v0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_0 .restart local v4 #selectionArgs:[Ljava/lang/String; goto :goto_1 .line 1510 .end local v3 #where:Ljava/lang/String; .end local v4 #selectionArgs:[Ljava/lang/String; .end local v13 #hasWildCards:Z :catchall_0 move-exception v0 if-eqz v12, :cond_6 .line 1511 invoke-interface {v12}, Landroid/database/Cursor;->close()V .line 1510 :cond_6 throw v0 .line 1508 :catch_0 move-exception v0 .line 1510 if-eqz v12, :cond_7 .line 1511 :goto_3 invoke-interface {v12}, Landroid/database/Cursor;->close()V .line 1514 :cond_7 const/4 v5, 0x0 goto :goto_2 .line 1510 .restart local v3 #where:Ljava/lang/String; .restart local v4 #selectionArgs:[Ljava/lang/String; .restart local v13 #hasWildCards:Z :cond_8 if-eqz v12, :cond_7 goto :goto_3 .end method 7) Enregistrer les modifications, et faites glisser le dossier classout sur Quick-Smali. 8) Vous avez maintenant un fichier new-classes.dex. Renommez-le en classes.dex et replacez-le dans framework.jar à l'aide de WinRAR. 9) Téléchargez un des zips déjà préparés, et remplacez fichier /system/framework/framework.jar par le framework.jar que vous avez modifié. Remarque :Les zip proposés sont là uniquement pour régler le wakelock de "Stockage multimédia", si le wakelock provient d'une autre application, il vous suffira de la désinstaller ;) Merci à Noskovj de XDA pour la création des zip Modifié 21 septembre 2013 par Ster97 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MisterAdibass Posté(e) 17 septembre 2013 Share Posté(e) 17 septembre 2013 Question bête : si j'ai la XXEMG6, je prends la XXEMF6 ou alors il n'y a pas de zip pour le firmware?Pour info le *#1234# m'ouvre superSU et c'est tout.Merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ster97 Posté(e) 18 septembre 2013 Auteur Share Posté(e) 18 septembre 2013 (modifié) Il n'y a pas de zip pour ton firmware, mais je vais t'en préparer un. Va dans /system/app et copie Framework-res.apk puis envoie-le moi stp (en l'hébergeant par exemple sur Mediafire), ça m'évitera de devoir télécharger toute la ROM ^_^Envoyé depuis mon GT-I9300 avec Tapatalk Modifié 18 septembre 2013 par Ster97 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MisterAdibass Posté(e) 18 septembre 2013 Share Posté(e) 18 septembre 2013 Hmmm je n'ai pas trouvé de fichier s'appelant "framework-res.apk" avec ESexplorer (explorer root donc ayant accès à tous les fichiers non?) mais j'ai trouvé un fichier se rapprochant de ça dans le dossier https://www.dropbox.com/s/sh7uwqts02po9so/GoogleServicesFramework.apk Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ster97 Posté(e) 18 septembre 2013 Auteur Share Posté(e) 18 septembre 2013 (modifié) Ah mince je me suis trompé désolé :emo_im_undecided: c'est pas dans /system/app mais dans /system/framework, et c'est pas framework-res.apk mais framewrok.jar Modifié 18 septembre 2013 par Ster97 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MisterAdibass Posté(e) 18 septembre 2013 Share Posté(e) 18 septembre 2013 Ah ok, je t'avoues que j'ai fait une recherche globale mais il n'avait pas trouvé.https://www.dropbox.com/s/x99psqbv8uirxzu/framework.jar merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ster97 Posté(e) 21 septembre 2013 Auteur Share Posté(e) 21 septembre 2013 (modifié) Désolé, je ne sais pas trop comment deodexer le framewok, et je ne voudrais pas faire de bêtises. En revanche si tu passes sur une version deodexée de ta ROM j'ai préparé ce zip qui conviendra. Et excuse moi du retard, je n'ai pas beaucoup de temps du mercredi au vendredi. Modifié 21 septembre 2013 par Ster97 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.