A guide to torrents as a ROM distribution method
Over the last few days I’ve attempted via WiFi and 4G to download a 1.2GB ROM onto my phone from a couple of the major free Android hosting sites out there. Over the last few days, it’s failed every time on my HTC One M8.
This is not my WiFi’s problem, nor Sprint’s service for once, nor is it an HTC One M8 specific problem as the same issues occurred on much smaller HTC EVO 4G LTE ROMs and various hosting platforms, the problem is that the Android download manager is evidently not designed for reliably downloading files that are significantly larger than a Windows install CD.
You look at the device sideways and the ROM has aborted downloading with no reason given.
I’ve put it out there in the past that that I feel the currently adopted method of ROM distribution is archaic and self-defeating with most ROMs I attempt to download churning 20 minutes or so before I notice there’s a “download failed” message sitting in my status bar. I have the option to try again, but I’ll usually get the same results.
Why you want torrents
A corrupted download means a user asking a ROM developer what the deal is with the failed install or leaves the user with a phone stuck at a loading screen. It also means more bandwidth wasted. The argument is bandwidth is cheap. I’ll counter with time and freaked out users aren’t.
There are two sides to the torrent distribution equation, the user’s and the developer’s sides.
For the user, they download a torrent application such as uTorrent, then click the developer’s magnetic link which is just a string of text they place in a post. Done. If the user wishes to give back to the developer, they can stay in the torrent client and provide bandwidth to other people who want to download the ROM. The more popular the ROM is, the faster you can download it.
For the developer, switching to torrents ensures that every user has a valid block-checked copy of the ROM they downloaded. It also means no more multiple attempts to upload a ROM update, or uploading and finding out there was an error in transmission and a corrupted archive is sitting there being downloaded by your followers. Nobody gets a bad copy of your ROM. Ever.
On the setup side of the developer’s equation, it’s as easy as downloading a torrent client (such as Vuze,) and choosing to share a file, you’ll get a magnetic link and paste it into your OP and that’s that. Any update you create can be pushed immediately. The file resides on the host’s computer until such time as the developer doesn’t want it. The host computer can be disconnected from the torrent swarm once it’s up and the users who love the development can help out by providing bandwidth just by leaving their torrent clients open.
The more advanced developers can set up a centralized tracker with the ability to block downloading if something goes wrong with a ROM release.
Developer’s computer goes down mid-upload
Free hosting site: half uploaded ROM goes up, sits there potentially being downloaded while developer makes call to friends to post that the ROM is bad. Whether the users can see the half uploaded file is dependent on the host.
Torrent: nobody has the ROM.
Host or Developer’s computer goes down post-upload
Free hosting site: nobody gets the ROM, developer scrambles to get backup free host.
Torrent: as long as one person out there is seeding there are no interruptions in ROM distribution.
Developer’s domain is seized
As you may recall, in the phone world there are a lot of lawyers and the general way things work is they send C&D to the developers, and legal threats to ISPs and file hosts. After that they might stop to figure out if what they’re doing is even legal.
Free hosting site: probably going to yank your work to cover their asses, which is what they should do.
Torrent: as long as the magnetic link is known and someone is seeding there’s no way to stop ROM distribution.
User’s phone loses internet, power, etc.
Free hosting site: re-download from the beginning.
Torrent: re-launch the torrent client and it will pick up where it left off.
ROM distribution is taking too much time
Free hosting site: send out calls for donations, ask for help purchasing more bandwidth.
Torrent: ask people to tap a button to seed the ROM.
A billion people want to download this ROM right now
Free hosting site: once all the available bandwidth on the place is used, you’re going to crawl along slowly downloading.
Torrent: much like the Hulk with anger and strength, the more downloaders a torrent gets the faster it gets.
User’s computer is broken
Free hosting site: Just try and get that ROM downloaded.
Torrent: bing! download’s done.
The developer side of the torrent equation can be set up in about three minutes. At three minutes you can start seeding and streaming to the masses who will help you stream to the rest. Anyone complaining about how long it takes to download can be told to stuff it and help seed the ROM.
This is a win-win for everyone. No more bad downloads. No more posts “uploading to host”. No more downed servers taking your work with them. No more users pulling hair because they just wasted half their data plan attempting to get your ROM.
Can you imagine a world where a ROM is distributed without three to six false download links that take you to advertisers of dubious reputation? You can make this happen. Imagine not only not having to wait 10 seconds to open a list of where to download a ROM because you didn’t donate, but donating to the cause just by keeping an application running when you’re at home on WiFi. That’s torrenting.
It works. It works well. It’s free. It’s legal.