Quantcast
Channel: xda-developers - One S Android Development
Viewing all articles
Browse latest Browse all 275

[HACK] ViperOneS2.0.0 boot.img to use /etc/firmware rather than partitions - fix wifi

$
0
0
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.
  • 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.


Viewing all articles
Browse latest Browse all 275

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>