[Sprint HTC One (M8)] ahecht:
The following Windows batch file will backup and remove the Sprint installed bloatware, various spyware/logging/etc apps that waste battery, Google apps such as Books and Magazines that can be installed form the Play Store, non-EFIGS language packs, the boot sound, and the Virgin Mobile and Boost Mobile startup animations.

The batch file checks each file for a backup before removing it so it should be safe, but the normal disclaimers about me taking no responsibility if you screw up your phone apply.

Copy and paste the script below into notepad on a Windows computer, save it as debloat.bat in the same directory as adb.exe, and double click on it to run. Then just follow the instructions on the screen.

@ECHO OFF
ECHO Finding device . . .
ECHO.
adb kill-server
adb devices
ECHO.
SET /P ANSWER=Is your device shown above (Y/N)?
IF /i "%ANSWER%"=="y" GOTO :yes1
IF /i "%ANSWER%"=="yes" GOTO :yes1
GOTO :no

:yes1
ECHO.
ECHO Backing up user apps . . .
adb pull /data/app/com.ebay.mobile-1.apk
adb pull /data/app/com.lookout-1.apk
adb pull /data/app/com.mobitv.client.sprinttvng-1.apk
adb pull /data/app/com.nascar.nascarmobile-1.apk
adb pull /data/app/com.nbadigital.gametimelite-1.apk
adb pull /data/app/com.nextradioapp.nextradio-1.apk
adb pull /data/app/com.pinsight.eureka.offers-1.apk
adb pull /data/app/com.sprint.android.musicplus2033-1.apk
adb pull /data/app/com.sprint.w.v8-1.apk
adb pull /data/app/com.telenav.app.android.scout_us-1.apk
adb pull /data/app/com.wipit.sprintmoneyexpress-1.apk
adb pull /data/app/msgplus.jibe.sca-1.apk
ECHO.
ECHO If you don't see any errors above, APKs have been backed up to
ECHO %CD%
ECHO.
SET /P ANSWER=Uninstall user apps (Y/N)?
IF /i "%ANSWER%"=="y" GOTO :yes2
IF /i "%ANSWER%"=="yes" GOTO :yes2
GOTO :no

:yes2
ECHO.
ECHO Uninstalling user apps . . .
ECHO.
if exist com.ebay.mobile-1.apk ( adb uninstall com.ebay.mobile ) else ( ECHO com.ebay.mobile-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.lookout-1.apk ( adb uninstall com.lookout ) else ( ECHO com.lookout-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.mobitv.client.sprinttvng-1.apk ( adb uninstall com.mobitv.client.sprinttvng ) else ( ECHO com.mobitv.client.sprinttvng-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.nascar.nascarmobile-1.apk ( adb uninstall com.nascar.nascarmobile ) else ( ECHO com.nascar.nascarmobile-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.nbadigital.gametimelite-1.apk ( adb uninstall com.nbadigital.gametimelite ) else ( ECHO com.nbadigital.gametimelite-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.nextradioapp.nextradio-1.apk ( adb uninstall com.nextradioapp.nextradio ) else ( ECHO com.nextradioapp.nextradio-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.pinsight.eureka.offers-1.apk ( adb uninstall com.pinsight.eureka.offers ) else ( ECHO com.pinsight.eureka.offers-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.sprint.android.musicplus2033-1.apk ( adb uninstall com.sprint.android.musicplus2033 ) else ( ECHO com.sprint.android.musicplus2033-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.sprint.w.v8-1.apk ( adb uninstall com.sprint.w.v8 ) else ( ECHO com.sprint.w.v8-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.telenav.app.android.scout_us-1.apk ( adb uninstall com.telenav.app.android.scout_us ) else ( ECHO com.telenav.app.android.scout_us-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist com.wipit.sprintmoneyexpress-1.apk ( adb uninstall com.wipit.sprintmoneyexpress ) else ( ECHO com.wipit.sprintmoneyexpress-1.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist msgplus.jibe.sca-1.apk ( adb uninstall msgplus.jibe.sca ) else ( ECHO msgplus.jibe.sca-1.apk BACKUP NOT FOUND, SKIPPING . . . )
ECHO.
ECHO Uninstall of user apps complete.
SET /P ANSWER=Press ENTER to reboot into recovery . . .
ECHO.
ECHO Rebooting into recovery . . .
ECHO.
adb reboot recovery
SET /P v="Press ENTER when the phone has rebooted into recovery . . ."
ECHO.
adb root
adb remount
ECHO.
ECHO If you do not see "remount succeeded" above, use your recovery's GUI to mount
ECHO the System partition. If you see "remount succeeded" or have mounted /system/
SET /P v="manually, press ENTER . . ."
ECHO.
ECHO Backing up files . . .
adb pull /system/app/18892_SPC_HTC_Mobile_Guide_M8WHL.apk
adb pull /system/app/Books.apk
adb pull /system/app/HtcResetNotify.apk
adb pull /system/app/KidMode-google.apk
adb pull /system/app/Magazines.apk
adb pull /system/app/QXDM2SD.apk
adb pull /system/app/Smith.apk
adb pull /system/app/TetheringGuard.apk
adb pull /system/app/UDove.apk
adb pull /system/priv-app/CheckinProvider.apk
adb pull /system/priv-app/DemoFLOPackageInstaller.apk
adb pull /system/priv-app/GoogleFeedback.apk
adb pull /system/priv-app/ID.apk
adb pull /system/priv-app/LMIRescue.apk
adb pull /system/priv-app/LMIRescueSecurity.apk
adb pull /system/priv-app/MyBreeze.apk
adb pull /system/priv-app/SprintInstaller.apk
adb pull /system/priv-app/Stock.apk
adb pull /system/priv-app/T6-Lumen-1.1.1.42998.apk
adb pull /system/priv-app/Transfer.apk
adb pull /system/app/CIMEXT9.apk
adb pull /system/app/IMEMurasuIndic.apk
adb pull /system/app/IMEMurasuViet.apk
adb pull /system/app/IMEXT9Arabic.apk
adb pull /system/app/IMEXT9Armenian.apk
adb pull /system/app/IMEXT9BahasaIndonesia.apk
adb pull /system/app/IMEXT9BahasaMalaysia.apk
adb pull /system/app/IMEXT9Bulgaria.apk
adb pull /system/app/IMEXT9Catalan.apk
adb pull /system/app/IMEXT9Croatian.apk
adb pull /system/app/IMEXT9Czech.apk
adb pull /system/app/IMEXT9Danish.apk
adb pull /system/app/IMEXT9Dutch.apk
adb pull /system/app/IMEXT9Estonian.apk
adb pull /system/app/IMEXT9Farsi.apk
adb pull /system/app/IMEXT9Finnish.apk
adb pull /system/app/IMEXT9Greek.apk
adb pull /system/app/IMEXT9Hebrew.apk
adb pull /system/app/IMEXT9Hungarian.apk
adb pull /system/app/IMEXT9Kazakh.apk
adb pull /system/app/IMEXT9Latvian.apk
adb pull /system/app/IMEXT9Lithuanian.apk
adb pull /system/app/IMEXT9Norwegian.apk
adb pull /system/app/IMEXT9Polish.apk
adb pull /system/app/IMEXT9Portuguese.apk
adb pull /system/app/IMEXT9Romanian.apk
adb pull /system/app/IMEXT9Russian.apk
adb pull /system/app/IMEXT9Serbian.apk
adb pull /system/app/IMEXT9Slovak.apk
adb pull /system/app/IMEXT9Slovenian.apk
adb pull /system/app/IMEXT9Swedish.apk
adb pull /system/app/IMEXT9Thai.apk
adb pull /system/app/IMEXT9Turkish.apk
adb pull /system/app/IMEXT9Ukrainian.apk
adb pull /system/customize/resource/HTC_Sense5_Boot.mp3
adb pull /system/customize/resource/BM_startup_animation.zip
adb pull /system/customize/resource/VM_startup_animation.zip
ECHO.
ECHO If you don't see any errors above, APKs have been backed up to
ECHO %CD%
ECHO.
SET /P ANSWER=Delete files from /system/ (Y/N)?
IF /i "%ANSWER%"=="y" GOTO :yes3
IF /i "%ANSWER%"=="yes" GOTO :yes3
GOTO :no

:yes3
ECHO.
if exist 18892_SPC_HTC_Mobile_Guide_M8WHL.apk ( adb shell "rm /system/app/18892_SPC_HTC_Mobile_Guide_M8WHL.apk" ) else ( ECHO 18892_SPC_HTC_Mobile_Guide_M8WHL.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist Books.apk ( adb shell "rm /system/app/Books.apk" ) else ( ECHO Books.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist HtcResetNotify.apk ( adb shell "rm /system/app/HtcResetNotify.apk" ) else ( ECHO HtcResetNotify.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist KidMode-google.apk ( adb shell "rm /system/app/KidMode-google.apk" ) else ( ECHO KidMode-google.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist Magazines.apk ( adb shell "rm /system/app/Magazines.apk" ) else ( ECHO Magazines.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist QXDM2SD.apk ( adb shell "rm /system/app/QXDM2SD.apk" ) else ( ECHO QXDM2SD.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist Smith.apk ( adb shell "rm /system/app/Smith.apk" ) else ( ECHO Smith.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist TetheringGuard.apk ( adb shell "rm /system/app/TetheringGuard.apk" ) else ( ECHO TetheringGuard.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist UDove.apk ( adb shell "rm /system/app/UDove.apk" ) else ( ECHO UDove.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist CheckinProvider.apk ( adb shell "rm /system/priv-app/CheckinProvider.apk" ) else ( ECHO CheckinProvider.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist DemoFLOPackageInstaller.apk ( adb shell "rm /system/priv-app/DemoFLOPackageInstaller.apk" ) else ( ECHO DemoFLOPackageInstaller.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist GoogleFeedback.apk ( adb shell "rm /system/priv-app/GoogleFeedback.apk" ) else ( ECHO GoogleFeedback.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist ID.apk ( adb shell "rm /system/priv-app/ID.apk" ) else ( ECHO ID.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist LMIRescue.apk ( adb shell "rm /system/priv-app/LMIRescue.apk" ) else ( ECHO LMIRescue.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist LMIRescueSecurity.apk ( adb shell "rm /system/priv-app/LMIRescueSecurity.apk" ) else ( ECHO LMIRescueSecurity.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist MyBreeze.apk ( adb shell "rm /system/priv-app/MyBreeze.apk" ) else ( ECHO MyBreeze.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist SprintInstaller.apk ( adb shell "rm /system/priv-app/SprintInstaller.apk" ) else ( ECHO SprintInstaller.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist Stock.apk ( adb shell "rm /system/priv-app/Stock.apk" ) else ( ECHO Stock.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist T6-Lumen-1.1.1.42998.apk ( adb shell "rm /system/priv-app/T6-Lumen-1.1.1.42998.apk" ) else ( ECHO T6-Lumen-1.1.1.42998.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist Transfer.apk ( adb shell "rm /system/priv-app/Transfer.apk" ) else ( ECHO Transfer.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist CIMEXT9.apk ( adb shell "rm /system/app/CIMEXT9.apk" ) else ( ECHO CIMEXT9.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEMurasuIndic.apk ( adb shell "rm /system/app/IMEMurasuIndic.apk" ) else ( ECHO IMEMurasuIndic.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEMurasuViet.apk ( adb shell "rm /system/app/IMEMurasuViet.apk" ) else ( ECHO IMEMurasuViet.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Arabic.apk ( adb shell "rm /system/app/IMEXT9Arabic.apk" ) else ( ECHO IMEXT9Arabic.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Armenian.apk ( adb shell "rm /system/app/IMEXT9Armenian.apk" ) else ( ECHO IMEXT9Armenian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9BahasaIndonesia.apk ( adb shell "rm /system/app/IMEXT9BahasaIndonesia.apk" ) else ( ECHO IMEXT9BahasaIndonesia.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9BahasaMalaysia.apk ( adb shell "rm /system/app/IMEXT9BahasaMalaysia.apk" ) else ( ECHO IMEXT9BahasaMalaysia.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Bulgaria.apk ( adb shell "rm /system/app/IMEXT9Bulgaria.apk" ) else ( ECHO IMEXT9Bulgaria.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Catalan.apk ( adb shell "rm /system/app/IMEXT9Catalan.apk" ) else ( ECHO IMEXT9Catalan.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Croatian.apk ( adb shell "rm /system/app/IMEXT9Croatian.apk" ) else ( ECHO IMEXT9Croatian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Czech.apk ( adb shell "rm /system/app/IMEXT9Czech.apk" ) else ( ECHO IMEXT9Czech.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Danish.apk ( adb shell "rm /system/app/IMEXT9Danish.apk" ) else ( ECHO IMEXT9Danish.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Dutch.apk ( adb shell "rm /system/app/IMEXT9Dutch.apk" ) else ( ECHO IMEXT9Dutch.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Estonian.apk ( adb shell "rm /system/app/IMEXT9Estonian.apk" ) else ( ECHO IMEXT9Estonian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Farsi.apk ( adb shell "rm /system/app/IMEXT9Farsi.apk" ) else ( ECHO IMEXT9Farsi.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Finnish.apk ( adb shell "rm /system/app/IMEXT9Finnish.apk" ) else ( ECHO IMEXT9Finnish.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Greek.apk ( adb shell "rm /system/app/IMEXT9Greek.apk" ) else ( ECHO IMEXT9Greek.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Hebrew.apk ( adb shell "rm /system/app/IMEXT9Hebrew.apk" ) else ( ECHO IMEXT9Hebrew.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Hungarian.apk ( adb shell "rm /system/app/IMEXT9Hungarian.apk" ) else ( ECHO IMEXT9Hungarian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Kazakh.apk ( adb shell "rm /system/app/IMEXT9Kazakh.apk" ) else ( ECHO IMEXT9Kazakh.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Latvian.apk ( adb shell "rm /system/app/IMEXT9Latvian.apk" ) else ( ECHO IMEXT9Latvian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Lithuanian.apk ( adb shell "rm /system/app/IMEXT9Lithuanian.apk" ) else ( ECHO IMEXT9Lithuanian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Norwegian.apk ( adb shell "rm /system/app/IMEXT9Norwegian.apk" ) else ( ECHO IMEXT9Norwegian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Polish.apk ( adb shell "rm /system/app/IMEXT9Polish.apk" ) else ( ECHO IMEXT9Polish.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Portuguese.apk ( adb shell "rm /system/app/IMEXT9Portuguese.apk" ) else ( ECHO IMEXT9Portuguese.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Romanian.apk ( adb shell "rm /system/app/IMEXT9Romanian.apk" ) else ( ECHO IMEXT9Romanian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Russian.apk ( adb shell "rm /system/app/IMEXT9Russian.apk" ) else ( ECHO IMEXT9Russian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Serbian.apk ( adb shell "rm /system/app/IMEXT9Serbian.apk" ) else ( ECHO IMEXT9Serbian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Slovak.apk ( adb shell "rm /system/app/IMEXT9Slovak.apk" ) else ( ECHO IMEXT9Slovak.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Slovenian.apk ( adb shell "rm /system/app/IMEXT9Slovenian.apk" ) else ( ECHO IMEXT9Slovenian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Swedish.apk ( adb shell "rm /system/app/IMEXT9Swedish.apk" ) else ( ECHO IMEXT9Swedish.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Thai.apk ( adb shell "rm /system/app/IMEXT9Thai.apk" ) else ( ECHO IMEXT9Thai.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Turkish.apk ( adb shell "rm /system/app/IMEXT9Turkish.apk" ) else ( ECHO IMEXT9Turkish.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist IMEXT9Ukrainian.apk ( adb shell "rm /system/app/IMEXT9Ukrainian.apk" ) else ( ECHO IMEXT9Ukrainian.apk BACKUP NOT FOUND, SKIPPING . . . )
if exist HTC_Sense5_Boot.mp3 ( adb shell "rm /system/customize/resource/HTC_Sense5_Boot.mp3" ) else ( ECHO HTC_Sense5_Boot.mp3 BACKUP NOT FOUND, SKIPPING . . . )
if exist BM_startup_animation.zip ( adb shell "rm /system/customize/resource/BM_startup_animation.zip" ) else ( ECHO BM_startup_animation.zip BACKUP NOT FOUND, SKIPPING . . . )
if exist VM_startup_animation.zip ( adb shell "rm /system/customize/resource/VM_startup_animation.zip" ) else ( ECHO VM_startup_animation.zip BACKUP NOT FOUND, SKIPPING . . . )
ECHO.
ECHO Deletion of system apps completed.
SET /P ANSWER=Press ENTER to reboot . . .
ECHO.
ECHO Rebooting . . .
adb reboot
ECHO.
ECHO Bloat apps have been removed and backed up to
ECHO %CD%
ECHO.
GOTO :end

:no
ECHO.
ECHO Cancelling . . .
ECHO.

:end
PAUSE
EXIT

If you wish to reinstall any of the removed programs, there is a rebloatM8.bat file in the attached zip file below that will reinstall any backed up files removed by this script to your phone. Just move any files you don't want restored to another directory and run the script.