Help Super harsh Countdown Timer sound on Nexus 4 -- how to change?

Does anyone know how to change which sound plays within the stock countdown timer on the Nexus 4 (Android 4.2.1) without rooting? That thing literally hurts my ears when i use it, but there's no option to change the sound that I can find.

The countdown timer has a lovely circular design, awesome layout -- just a terrible tone!


Any luck on fixing the harsh countdown?

I tried by messing with the apk and root permission but all I could do was make a silent tone.


Android Expert
I think your only option is trial and error.

Ideally, go to the directory with all of the alert sound files (the alternative is to search the phone for all sound files) and play each in turn until you find the one that the alarm uses.

Sounds worse than it is: there probably aren't that many sound files.


If you root the phone, couldn't you just replace the sound file that the timer uses?

Tried that already - I am not that proficient in hacking apks so I may have done it wrong.

I found the offensive ogg file in /system/app/DeskClock.apk/assets/sounds/Timer_Expire.ogg

when I replace the sound file with a different ogg file (renamed to Timer_Expire.ogg) the following happens.
after first reboot the timer gives no sound,
after a subsequent reboot the harsh sound is restored.

It is as if it may realise that the sound file has been tampered with and uses a backup - but I doubt that would be the case - I am perplexed.

I hope that helps to identify where to start with changing the tone.
I have change the sound file in the apk-file and it dosn't work as well. I check the Log and the source. In the line 136 (I mark it in the folowing link) the exception catch any problems. I test it and the sound of the exception (DeskClock.apk: res\raw\fallbackring.ogg; higher sound) is differend from the original (Timer_Expire.ogg: deeper sound).


I get in the adb Log some errors:
ACDB-LOADER: Error: ACDB AudProc vol returned = -8
ACDB-LOADER: Error: ACDB AFE returned = -8
AwesomePlayer: LPAPlayer::Clip duration setting of less than 30sec not supported, defaulting to 60sec
AlarmClock: Using the fallback ringtone <<< This is the excpetion!!!

Some of the errors are identical in the original and modified version. I create a ogg-file with the quality 5 and metadata with the title: Time_Expire and ANDROID_LOOP: true. All that don't work and use the exception sound. I change the fallbackring.ogg as well and no sound is playing. After changing the fallbackring.ogg a file not found exception is called.

Maybe it is a signing problem. I check with the folowing command the signing of the modified apk and get the error: jarsigner: java.lang.SecurityException: SHA1 digest error for assets/sounds/Timer_Expire.ogg

jarsigner -verify -certs -verbose "DeskClock.apk"

Now I think the Timer_Expire.ogg will not be loaded and so the exception is called. The tool Easy Apk Dissassembler can dissassembly, assembly and sign an exisiting app. The problem will be that we don't have the sigining key from google. I don't know what happen if I sign it with my own key.


Android Expert
I also found that the countdown timer sound wasn't a very good one. It literally scared the crap out of me!

Seeing as though the search to manually change it isn't going that well :S I had a look in the play store and found a few nice timer apps:

Timely (now free)

Just had a quick look through the app, it's pretty nice, customisable themes, clocks, same format as the stock android app and the timer alarm is much less harsh, and you can choose the sound.
I can't believe that google leaves this unfixed. The problem with a 3rd party app is I can't use voice assistant to set a timer. I'm not writing code to sort out googles problems. Maybe they should just ya know fix it.