Modification of vendor firmwares instead of using generic firmwares

Started by Jeremy Collake, May 02, 2013, 04:30:44 PM

Previous topic - Next topic

Jeremy Collake

Traditionally, WiFi router hackers use generic aftermarket firmwares like OpenWrt or DD-WRT. Great effort goes into making these firmwares compatible with a multitude of devices, often with less than stellar results. The sheer number of vendors, models, platforms. and ever-changing market make building a generic aftermarket firmware challenging.

Therefore, I've personally started migrating to the idea that vendor firmwares should be modified or extended. While they are often pieced together hack jobs, their drivers are guaranteed to be the preferred ones, hardware support is full (e.g. hardware  NAT), etc ... Further, one doesn't have to re-invent the wheel, so to speak.

So, it may often be preferred to modify vendor firmwares, adding the desirable features of aftermarket firmwares to them.

Vendor firmwares ...

  • Offer full and proper driver support, including closed source drivers bound to a specific kernel version, and patches for things like hardware assisted NAT
  • Have a capable and consistent web interface
  • Offer full compatibility with all features of the target device
  • Don't require any additional effort to simply achieve compatibility with the target device
  • Are well tested for the target platform
  • Are maintained by the vendor

To achieve this, one can use the Firmware Mod Kit. While some formats may require a little additional work, it is ready to handle many linux firmwares.

The challenge is in standardizing and documenting the process of adding desired features to the vendor firmware. These include, but are not limited to:


  • Shell access via telnet/sshd
  • Writable file system
  • Webif modifications
  • Building additional or replacement apps and modules using the target platform toolset (toolchain)
  • Adding a package management system

I have begun documenting this in the wiki here: https://code.google.com/p/firmware-mod-kit/wiki/WikiHackingVendorFirmwares .
Software Engineer. Bitsum LLC.

BenYeeHua

But, sometimes Vendor firmwares don't bring stability.
For example, Android, which need to running by hundreds of Android device.
Sometimes the custom made ROMs or firmwares are more stable than vendor firmwares. :)
----
But yes, it can be used for the Modems/Routers which has many type of hardware version for every model.
Like TP-Link, they want to save the cost of making modem/routers, they will making many type of "improved" hardware versions which reduce the performance of hardware, by changing the hardware to a weaker one... :P

So, how they keep the quality of firmwares while they need to maintains so many type of hardware. :)

Jeremy Collake

That is *sometimes* the case, usually briefly, but more often than not, aftermarket firmwares are less stable. There are exceptions, and in most cases, I'd say they are equal in stability, with there being good and bad versions of each. Speaking of aftermarket Android firmwares, I'd *never* flash one of those on my phone. For a device that must remain secure, especially if used in 2 factor authentication, there's really only one option: stick with the secured, vendor firmware.

The thing with vendor firmwares is that they are based on template firmwares provided by the chipset manufacturer (e.g. Atheros, Qualcomm, Broadcom). The vendor can build a good line of firmwares by swapping out the drivers, and making minor tweaks, in most all cases. When they develop an entirely new line of routers, or switch to a different OS, they may need to do some reworking, but their work is always at the application layer. None of the vendors go and hack on the drivers that are provided by the chipset manufactuerers.

Since those chipset drivers are often closed source, and the open source community must try to re-create them, it ends up being the closed source drivers that are years ahead, and offer more stability and performance.

I've spent a lot of time thinking about this, and I'm truly convinced this is the way to go. We've spent years trying to create 'all in one' firmwares that don't rely on closed source drivers, but have mostly failed. They are perpetually 6 months, a year, or more behind on features and hardware support, and often don't ever get those features or hardware support.
Software Engineer. Bitsum LLC.

BenYeeHua

Yes, most of the time, vendor firmwares can be trusted.
And about stability, I means it can running at least 1 month without hang itself(and most of the time, my router/modem hang because of overheat ;D).
---
The only issues is, most user know how to flash firmwares, but they don't know how to modify it. :)