Changing speaker microphone etc volume via ServiceMode
Handset speaker volume:
Type *#197328640# , then go [8] Audio - [1] Handset - [2] RX Value - [1] RX Codec/Volume
If you want it to remain logarithmic change
Rx Codec Gain: 5FFF for 4dB, 7FFF for 6dB, FFFF for 12dB, 4000 for default, etc, you know hex.
If you want the volume to change lineary or whatever, change the volume 0 to 5 accordingly
Handset microphone volume:
Type *#197328640# , then go [8] Audio - [1] Handset - [2] TX Value - [1] TX Codec/Volume
Change [1] Tx Codec Gain accordingly: 5FFF for 4dbB 7FFF for 6dB, FFFF for 12dB, etc
Increase speaker volume (ringing, playing music,...):
Type *#197328640# , then go [8] Audio - [3] Speaker - [2] RX Value - [1] RX Codec/Volume
Change Rx Codec Gain from 143E (-12dB) to 1FFF (-6dB) or 2FFF(-3dB), 3FFF(0dB), 4FFF (2dB), etc.
1FFF is loud enough.
All of this works without reboot, but sometimes the values doesn't change in menu (althrough they changed in real, because phone is louder). So reboot is safer.
When in service menu, phone GSM connection is flapping, don't worry, it's normal.
If you want to restore default settings, choose Rebuild these vaules in according menu, or generally. This may require reboot (sometimes do, sometimes don't)