For anybody who wants to run a stock (but rooted) ROM and wants to remove probably the dumbest feature ever: the Full Charge Notification. This is affectionately known as the 3am wake-up call.
If you don't know what I'm talking about, consider yourself lucky. If you know what I'm talking about, you have options. One way is to install an app to silence the notifications such as the free "Battery Charged Silencer" app (thanks JimSmith94 for pointing this out), this app allows you to silence the notification sound only. For the more adventurous types out there here's another way to put an end to it, which also allows you to choose whether or not to leave the screen-on and status bar notification:
For anybody running stock 2.3.6 you can grab the file below and skip steps 1-16. This will stop both the screen-on and the status bar icon.
If you are running a custom ROM and you don't have this notification (I'm not sure why you read this far but...) please thank your dev. If you do have this notification, I imagine these steps would still work for you.
If these changes don't work for you, you find a full nights sleep to be annoying, you think sleep is for weak minded individuals, etc. you're in luck. Reverting back is simple:
Thanks:
Thanks to pulser_g2 for fixing this issue on the international GSII
Thanks to Mic_88 for writing a portal article about pulser_g2's work), I also linked to the image you used
Thanks to Sboulema for your step by step directions (largely copy/pasted above)
Thanks to afilopou for some edits you made to those directions
Thanks to countless others here at XDA who freely share their knowledge and selflessly donate their time to make life better for others

If you don't know what I'm talking about, consider yourself lucky. If you know what I'm talking about, you have options. One way is to install an app to silence the notifications such as the free "Battery Charged Silencer" app (thanks JimSmith94 for pointing this out), this app allows you to silence the notification sound only. For the more adventurous types out there here's another way to put an end to it, which also allows you to choose whether or not to leave the screen-on and status bar notification:
1. Download Auto-Deodexer, http://forum.xda-developers.com/showthread.php?t=598026
2. Extract Auto-Deodexer
3. Copy /system/app/SystemUI.apk and system/app/SystemUI.odex to your sdcard
4. Copy /system/framework/ to your sdcard
5. Copy the contents of the framework folder from sdcard to the framework folder of Auto-Deodexer
6. Copy SystemUI.apk and SystemUI.odex to the app folder of Auto-Deodexer
7. Run deoall.bat, choose option 1 and wait for it to finish. Use option 6 to exit
8. Open deodexed_APK/SystemUI.apk with 7-zip and extract classes.dex to your root deodexer folder (the one with baksmali in it)
9. Open a command prompt and navigate to the folder where you have extracted Auto-Deodexer
10. Use the following command: java -jar baksmali-1.2.3.jar -o dexout/ classes.dex
11. Open dexout/com/android/systemui/statusbar/policy/StatusBarPolicy.smali in your favorite text editor
12. Find the .method private addFullChargeNotification method.
13. What you do next depends on your version of Android.
14. Use the following command: java -Xmx512M -jar smali-1.2.3.jar dexout/
15. Rename out.dex to classes.dex
16. Replace the classes.dex in the deodexed SystemUI.apk with the one you just created
17. Rename the new deodexed SystemUI.apk to SystemUI.apk.new and push it to your phone
18. Copy SystemUI.apk.new to your /system/app folder
19. Set the permissions for the file to owner: Read/Write, group: Read, others: Read (644 for those who know what that means)
20. Rename SystemUI.odex to SystemUI.odex.old
21. Rename SystemUI.apk to SystemUI.apk.old (you will start seeing frequent errors at this point, this is normal and expected. Don't panic just hit Force Close to dismiss the errors and continue)
22. Rename SystemUI.apk.new to SystemUI.apk
23. Reboot
24. Enjoy uninterrupted sleep.
2. Extract Auto-Deodexer
3. Copy /system/app/SystemUI.apk and system/app/SystemUI.odex to your sdcard
4. Copy /system/framework/ to your sdcard
5. Copy the contents of the framework folder from sdcard to the framework folder of Auto-Deodexer
6. Copy SystemUI.apk and SystemUI.odex to the app folder of Auto-Deodexer
7. Run deoall.bat, choose option 1 and wait for it to finish. Use option 6 to exit
8. Open deodexed_APK/SystemUI.apk with 7-zip and extract classes.dex to your root deodexer folder (the one with baksmali in it)
9. Open a command prompt and navigate to the folder where you have extracted Auto-Deodexer
10. Use the following command: java -jar baksmali-1.2.3.jar -o dexout/ classes.dex
11. Open dexout/com/android/systemui/statusbar/policy/StatusBarPolicy.smali in your favorite text editor
12. Find the .method private addFullChargeNotification method.
13. What you do next depends on your version of Android.
If you are running Android 2.3.4, remove the following lines:
to remove the sounds, remove: "invoke-direct {p0, v0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->playTone(Landroid/net/Uri
v"
to stop the screen from turning on, remove: "invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->turnOnScreenWithForce()v"
to remove the status bar icon, remove: "invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification
v"
If you are running 2.3.6 (you have the EK02 update), remove the following lines:
to remove the status bar icon, remove: "invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification
V"
to stop the screen from turning on, remove: "invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->turnOnScreenWithForce()V"
to remove the sounds, remove: "invoke-direct {p0, v0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->playTone(Landroid/net/Uri
to stop the screen from turning on, remove: "invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->turnOnScreenWithForce()v"
to remove the status bar icon, remove: "invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification
If you are running 2.3.6 (you have the EK02 update), remove the following lines:
to remove the status bar icon, remove: "invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification
to stop the screen from turning on, remove: "invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->turnOnScreenWithForce()V"
14. Use the following command: java -Xmx512M -jar smali-1.2.3.jar dexout/
15. Rename out.dex to classes.dex
16. Replace the classes.dex in the deodexed SystemUI.apk with the one you just created
17. Rename the new deodexed SystemUI.apk to SystemUI.apk.new and push it to your phone
18. Copy SystemUI.apk.new to your /system/app folder
19. Set the permissions for the file to owner: Read/Write, group: Read, others: Read (644 for those who know what that means)
20. Rename SystemUI.odex to SystemUI.odex.old
21. Rename SystemUI.apk to SystemUI.apk.old (you will start seeing frequent errors at this point, this is normal and expected. Don't panic just hit Force Close to dismiss the errors and continue)
22. Rename SystemUI.apk.new to SystemUI.apk
23. Reboot
24. Enjoy uninterrupted sleep.
For anybody running stock 2.3.6 you can grab the file below and skip steps 1-16. This will stop both the screen-on and the status bar icon.
If you are running a custom ROM and you don't have this notification (I'm not sure why you read this far but...) please thank your dev. If you do have this notification, I imagine these steps would still work for you.
If these changes don't work for you, you find a full nights sleep to be annoying, you think sleep is for weak minded individuals, etc. you're in luck. Reverting back is simple:
1. Rename SystemUI.odex.old to SystemUI.odex
2. Rename SystemUI.apk to SystemUI.apk.new
3. Rename SystemUI.apk.old to SystemUI.apk
4. Reboot
2. Rename SystemUI.apk to SystemUI.apk.new
3. Rename SystemUI.apk.old to SystemUI.apk
4. Reboot
Thanks:
Thanks to pulser_g2 for fixing this issue on the international GSII
Thanks to Mic_88 for writing a portal article about pulser_g2's work), I also linked to the image you used
Thanks to Sboulema for your step by step directions (largely copy/pasted above)
Thanks to afilopou for some edits you made to those directions
Thanks to countless others here at XDA who freely share their knowledge and selflessly donate their time to make life better for others
Attachments
-
268.9 KB Views: 232
Last edited: