I love Sense and Viper ROM. What I don't love is HTC's definition of unlocked - so changing my WIFI and Radio firmware is a pain.
I hacked Viper's boot.img to use /etc/firmware rather than the WIFI(x2) + Radio partitions. I can now change my firmware using adb or an install tool => just put/update the files into /etc/firmware. As CM10 ROMs (my 2nd love) use /etc/firmware, you can now use their firmware installers.
This worked for me on my phone - but it is a hack - maybe it will work for others, mabye not. I would not try this if you aren't experienced, as it's totally untested and unverified. If this is a viable solution you'll see refinement and success reports over time.
prerequisites
1. Make a backup and copy it off your phone.
I use TWRP and then adb to 'pull' it.
2. Load WIFI firmware and Radio firmware into /etc/firmware - these are most often (*) transparent to Sense ROMS
You need to load the Radio, Wifi (q6) and Wifi (wcnss) firmwares into /etc/firmware. You will have an awsome boot loop later on if you leave something out.
I copied the files with adb, but you can also install zip files:
Boot into TWRP then install:
Ville.WIFI.Firmware_etcfirmware.RC1.zip
CM10-Radio-InstallerV1.5.zip -> choose the radio you want (
3. Sanity check - Boot Viper and make sure it's still working.
The firmware you just added is most often (*) ignored. You should verify the additional files are in /etc/firmware - adb shell.
4. Test boot the hacked boot.img
Do a one off download of the hacked boot.img into your phone. It will not over-write the boot.img on the phone, just download it into memory and execute it just this once See attached file
boot into the bootloader for fastboot session:
fastboot boot hackedviperforfirmwarelinks_boot.img
5. Test and post results - either way
Total number of users to try this, that aren't me: 0 be scared
6. Install the hacked boot.img
If your happy and want to keep using the hack. Flash the hacked boot.img.
boot into the bootloader for fastboot session:
fastboot flash boot hackedviperforfirmwarelinks_boot.img
7. To uninstall - remember to do this when you upgrade Viper or restore a ROM
Extract boot.img from ViperOneS_2.0.0.zip - on your linux/windows rig
fastboot flash boot boot.img
(*) note:
The firmware loading mechanisms on Sense ROMs are complicated, RC scripts will search and then link to any salient firmware they might find. Things will depend on what/where and even the case of the filenames!
Caution:
I absolutely 100% guarantee you a boot loop either now or in the future. If you forget to flash the Viper supplied boot.img when you upgrade you'll have a great little recovery excercise! Same goes if you restore a backup. I forgot every time. There probably is some locale specific firmware that I don't know about. If your phone depends on it and it isn't in /etc/firmware then it will boot loop.
Technical Details
I updated the init.target.rc to: see copyright, license banner attached
Credit's:
I hacked Viper's boot.img to use /etc/firmware rather than the WIFI(x2) + Radio partitions. I can now change my firmware using adb or an install tool => just put/update the files into /etc/firmware. As CM10 ROMs (my 2nd love) use /etc/firmware, you can now use their firmware installers.
This worked for me on my phone - but it is a hack - maybe it will work for others, mabye not. I would not try this if you aren't experienced, as it's totally untested and unverified. If this is a viable solution you'll see refinement and success reports over time.
- This might help you get your wifi working with the Viper ROM - if you cannot flash your write protected WIFI partitions
- This will make it really easy to change Radios
prerequisites
- - Working Viper Install
- - Recovery Image working (I used TWRP, but for sure their are others)
- - Fastboot working
- - adb working
- - Ability to diagnose and fix a boot loop
- - Guts as this is untried, untested and unverified...
1. Make a backup and copy it off your phone.
I use TWRP and then adb to 'pull' it.
2. Load WIFI firmware and Radio firmware into /etc/firmware - these are most often (*) transparent to Sense ROMS
You need to load the Radio, Wifi (q6) and Wifi (wcnss) firmwares into /etc/firmware. You will have an awsome boot loop later on if you leave something out.
I copied the files with adb, but you can also install zip files:
- Radio: The awsome Tecardo's CM10 Radio Collection, use the CM10-Radio-InstallerV1.5.zip - from here.
- WIFI (q6 and wcnss): I hacked an installer to use /etc/firmware rather than the partitions see attached file . I shamlessly copied from Zarboz WIFI firmware installer. These are the firmware files that fixed the WIFI authentication problem for me.
Boot into TWRP then install:
Ville.WIFI.Firmware_etcfirmware.RC1.zip
CM10-Radio-InstallerV1.5.zip -> choose the radio you want (
3. Sanity check - Boot Viper and make sure it's still working.
The firmware you just added is most often (*) ignored. You should verify the additional files are in /etc/firmware - adb shell.
Code:
bash-4.2$ adb shell
ViperX@/# cd /etc/firmware
ViperX@/etc/firmware#
ViperX@/etc/firmware# ls -al | grep q6
-rw-r--r-- root root 276 2013-02-17 11:15 q6.b00
-rw-r--r-- root root 6580 2013-02-17 11:15 q6.b01
-rw-r--r-- root root 3428272 2013-02-17 11:15 q6.b03
-rw-r--r-- root root 2032526 2013-02-17 11:15 q6.b04
-rw-r--r-- root root 766032 2013-02-17 11:15 q6.b05
-rw-r--r-- root root 13248 2013-02-17 11:15 q6.b06
-rw-r--r-- root root 6856 2013-02-17 11:15 q6.mdt
ViperX@/etc/firmware# ls -al | grep wcnss
-rw-r--r-- root root 212 2013-02-17 11:15 wcnss.b00
-rw-r--r-- root root 6540 2013-02-17 11:15 wcnss.b01
-rw-r--r-- root root 8360 2013-02-17 11:15 wcnss.b02
-rw-r--r-- root root 1787316 2013-02-17 11:15 wcnss.b04
-rw-r--r-- root root 6752 2013-02-17 11:15 wcnss.mdt
ViperX@/etc/firmware#
ViperX@/etc/firmware# ls -al | grep modem
-rw-r--r-- root root 308 2008-08-01 22:00 modem.b00
-rw-r--r-- root root 6600 2008-08-01 22:00 modem.b01
-rw-r--r-- root root 22530448 2008-08-01 22:00 modem.b02
-rw-r--r-- root root 5120129 2008-08-01 22:00 modem.b03
-rw-r--r-- root root 1345816 2008-08-01 22:00 modem.b04
-rw-r--r-- root root 71376 2008-08-01 22:00 modem.b06
-rw-r--r-- root root 717044 2008-08-01 22:00 modem.b07
-rw-r--r-- root root 6908 2008-08-01 22:00 modem.mdt
-rw-r--r-- root root 1044 2008-08-01 22:00 modem_fw.b00
-rw-r--r-- root root 7060 2008-08-01 22:00 modem_fw.b01
-rw-r--r-- root root 2676 2008-08-01 22:00 modem_fw.b02
-rw-r--r-- root root 958928 2008-08-01 22:00 modem_fw.b03
-rw-r--r-- root root 579884 2008-08-01 22:00 modem_fw.b04
-rw-r--r-- root root 239892 2008-08-01 22:00 modem_fw.b05
-rw-r--r-- root root 94208 2008-08-01 22:00 modem_fw.b06
-rw-r--r-- root root 13568 2008-08-01 22:00 modem_fw.b07
-rw-r--r-- root root 11212 2008-08-01 22:00 modem_fw.b08
-rw-r--r-- root root 9596 2008-08-01 22:00 modem_fw.b09
-rw-r--r-- root root 68295 2008-08-01 22:00 modem_fw.b10
-rw-r--r-- root root 118028 2008-08-01 22:00 modem_fw.b13
-rw-r--r-- root root 158676 2008-08-01 22:00 modem_fw.b14
-rw-r--r-- root root 3604 2008-08-01 22:00 modem_fw.b21
-rw-r--r-- root root 28628 2008-08-01 22:00 modem_fw.b22
-rw-r--r-- root root 19424 2008-08-01 22:00 modem_fw.b23
-rw-r--r-- root root 74384 2008-08-01 22:00 modem_fw.b25
-rw-r--r-- root root 50108 2008-08-01 22:00 modem_fw.b26
-rw-r--r-- root root 84588 2008-08-01 22:00 modem_fw.b29
-rw-r--r-- root root 8104 2008-08-01 22:00 modem_fw.mdt
ViperX@/etc/firmware#
4. Test boot the hacked boot.img
Do a one off download of the hacked boot.img into your phone. It will not over-write the boot.img on the phone, just download it into memory and execute it just this once See attached file
boot into the bootloader for fastboot session:
fastboot boot hackedviperforfirmwarelinks_boot.img
5. Test and post results - either way
Total number of users to try this, that aren't me: 0 be scared
6. Install the hacked boot.img
If your happy and want to keep using the hack. Flash the hacked boot.img.
boot into the bootloader for fastboot session:
fastboot flash boot hackedviperforfirmwarelinks_boot.img
7. To uninstall - remember to do this when you upgrade Viper or restore a ROM
Extract boot.img from ViperOneS_2.0.0.zip - on your linux/windows rig
fastboot flash boot boot.img
(*) note:
The firmware loading mechanisms on Sense ROMs are complicated, RC scripts will search and then link to any salient firmware they might find. Things will depend on what/where and even the case of the filenames!
Caution:
I absolutely 100% guarantee you a boot loop either now or in the future. If you forget to flash the Viper supplied boot.img when you upgrade you'll have a great little recovery excercise! Same goes if you restore a backup. I forgot every time. There probably is some locale specific firmware that I don't know about. If your phone depends on it and it isn't in /etc/firmware then it will boot loop.
Technical Details
I updated the init.target.rc to: see copyright, license banner attached
- not mount the firmware partitions: /firmware_radio, /firmware_q6, /firmware_wcnss
- softlink above to /etc/firmware
Credit's:
- On my screen the entire time was AKToronto's partition list + cat2115
- I'd never put a zip file together, so what I've done probably sucks. I shamlessly copied Zarboz's extracted firmware and anything good from his install script, refer.