[Samsung Epic 4G Touch] AwfulFaded:
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:

1. Download Auto-Deodexer, http://xdaforums.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.

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"​

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​

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