<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" >
	<channel>
		<title>Péter Molnár Portfolio &#38; Blog &#187; CyanogenMod</title>
		<atom:link href="http://petermolnar.eu/tag/cyanogenmod/feed/" rel="self" type="application/rss+xml" />
		<link>http://petermolnar.eu</link>
		<description></description>
		<lastBuildDate>Fri, 10 May 2013 08:56:27 +0000</lastBuildDate>
		<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
		<item>
			<title>HTC Desire (Bravo): ROMs, updates, pain and suffering</title>
			<link>http://petermolnar.eu/linux-tech-coding/htc-desire-bravo-roms-updates-pain-and-suffering/</link>
			<comments>http://petermolnar.eu/linux-tech-coding/htc-desire-bravo-roms-updates-pain-and-suffering/#comments</comments>
			<pubDate>Thu, 19 Apr 2012 07:38:40 +0000</pubDate>
			<dc:creator>petermolnar</dc:creator>
			<category><![CDATA[linux, tech, coding]]></category>
			<category><![CDATA[adb]]></category>
			<category><![CDATA[Android]]></category>
			<category><![CDATA[ClockworkMod]]></category>
			<category><![CDATA[CyanogenMod]]></category>
			<category><![CDATA[fastboot]]></category>
			<category><![CDATA[flash]]></category>
			<category><![CDATA[HTC Desire]]></category>
			<category><![CDATA[Revolutionary]]></category>
			<guid isPermaLink="false">http://petermolnar.eu/?p=2747</guid>
			<description><![CDATA[<p>Replacing the ROM of a HTC Desire; notes for myself if I'd ever want to do this again.</p><p><p>Visit the post at <a href="http://petermolnar.eu/linux-tech-coding/htc-desire-bravo-roms-updates-pain-and-suffering/">HTC Desire (Bravo): ROMs, updates, pain and suffering</a></p></p>]]></description>
			<content:encoded><![CDATA[<p><em>Prelude: I currently work as an embedded developer, I learnt as one, I even got my degree on embedded systems &#8211; and flashing Android devices are far more complicated than I&#8217;ve ever thought.</em><em> Unless you do really have a reason, don&#8217;t do custom ROM upgrades.</em></p><h2 style="text-align: left;"><em></em>Only do this if you have TIME , PATIENCE and another phone with you.<br />Also&#8230; this is not a tutorial. This is only a collection of links, tweaks troubleshoot methods, mostly for myself.<br />I don&#8217;t say this is going to work. If you do anything to your phone, you&#8217;re on your own, no one to be blamed, so be aware.</h2><h2 style="text-align: left;">Why?</h2><p><a href="http://petermolnar.eu/files/2012/04/HTC-Desire-Bravo-Android-MWC-official.jpg"><img class="alignleft size-medium wp-image-2758" title="HTC-Desire-Bravo-Android-MWC-official" src="http://petermolnar.eu/files/2012/04/HTC-Desire-Bravo-Android-MWC-official-300x260.jpg" alt="" width="300" height="260" /></a></p><p>1 GHz, 576 MB RAM, has more RAM than a usual laptop 5 years ago, but 512MB flash and 150 MB for user is bloat.</p><p>Also there are no official, recommended, stable updates for HTC Desire GSM (Bravo) after Android 2.2. They released <a href="http://shipped-roms.com/download.php?category=android&amp;model=Bravo&amp;file=HTC_Desire_Android_2.3_Upgrade.zip">a semi-official  2.3 update</a>: only for experienced<br />users &#8211; I&#8217;ve tried it after a custom ROM, it did not connect to wireless networks, I could not even start a call.</p><p>Another reason is that you want to replace the shipped apps, like I did. Sometimes there are far better applications out there than the stock ones &#8211; sometimes.</p><h2></h2><h2>Why not?</h2><p><strong>Because something will definately go wrong, no exception</strong>. <del>For me, it seems I cannot connect USB Mass Storage anymore, no idea why. ( I&#8217;ve tried it both in linux and Windows.)</del></p><h2></h2><h2 style="text-align: center;">Do not forget to make backups. Always.<br /><em>And always verify them; belief is not enough.<br />ClockwordMod backups DO CAN FAIL. </em></h2><h2></h2><h2>What you need to understand</h2><p>The system of an Android phone is made up of a lot .img files. These are byte-by-byte copies of the affs2 filesystems used in embedded devices. My HTC &#8211; and probably your device too &#8211; has the following parts:</p><dl><dt>bootloader</dt><dd>Don&#8217;t touch this by hand. If you make a bad move, the phone can only be restored by hardware hacks, and you really don&#8217;t want to do this. Use  <a href="http://revolutionary.io/">Revolutionary</a>, this will unlock the features of the bootloader (S-OFF), for example, fastboot via USB.</dd><dt>recovery (recovery.img) </dt><dd>This the &#8220;backup&#8221; system; an alternative small system you can boot into <del> to save the day</del> and modify the base system. This system is usually replaced with <a href="http://android-dls.com/wiki/index.php?title=Amon_Ra_recovery_tool">Amon_Ra</a> or <a href="http://download.clockworkmod.com/recoveries/">ClockworkMod</a>. Revolutionary installs ClockworkMod automatically.</dd><dt>boot (boot.img)</dt><dd>Loads the main kernel and the system itself. Do not confuse with bootloader: bootloader loads the boot image.</dd><dt>system (system.img)</dt><dd>This is your system, the root partition if it sounds better. <em>Clockwordmod says it makes a yaffs2 backup, but that&#8217;s not fully true: it dd-s the filesystem, while it should be cat-ed.</em></dd><dt>data (data.img)</dt><dd>User data; something between /var and /home.</dd><dt>cache (cache.img)</dt><dd>Cache. Not important.</dd></dl><h2>Tools &amp; resources</h2><ul><li><a href="http://revolutionary.io/">Revolutionary</a><br />Makes things possible.</li><li><a href="http://htcdev.com/">HTC developer portal</a><br />You can access the kernel source, but that&#8217;s only for really hardcore fans.</li><li><a href="http://shipped-roms.com">shipped-roms.com</a><br />When you reach the point of crying, this is really handy: they are collecting the original stock roms and installers.</li><li><a href="http://petermolnar.eu/htc//2.10.405.5-initd-rooted-stock-v3_1.zip">original HTC Desire system rooted as .zip update</a> ( 2.10.405.5 )<br />Origins from <a href="http://www.brutzelstube.de/2011/gerootetes-offizieles-htc-stock-rom-2-29-405-5-mit-addons/">a german forum</a>.</li></ul><h3>Custom ROMs</h3><ul><li><a href="http://www.cyanogenmod.com/">cyanogen</a><br />One of the most commonly used custom ROMs: fast, easy to use, quite stable, but has some serious bugs, like the Sleep of Death. Anyway, <a href="http://wiki.cyanogenmod.com">their wiki is a life-saver</a>.</li><li><del><a href="http://leedroid.com/">LeeDroid</a></del><br /><del> Some say the best ROM in the jungle; for me, it only threw errors over errors.</del></li></ul><div>I&#8217;ve tried some others, but without success, they were stucked at a <a href="http://wiki.cyanogenmod.com/wiki/Troubleshooting#Bootloop_problem">bootloop</a>, and nothing helped at all.</div><h2>Lifesavers</h2><ul><li><a href="http://developer.android.com/guide/developing/tools/adb.html">adb</a><br />This is part of all android systems: imagine it as a backdoor telnet to Android core. It can be used with USB ( default ) or via <a href="http://stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp">WLAN</a>, this probably needs a rooted phone and a Terminal Emulator installed. adb can be installed as part of <a href="http://developer.android.com/sdk/index.html">Android SDK</a>.<br />Also: <a href="http://jonwestfall.com/2009/08/backup-restore-android-apps-using-adb/">http://jonwestfall.com/2009/08/backup-restore-android-apps-using-adb/</a></li><li><a href="http://en.wikipedia.org/wiki/Fastboot">fastboot</a><br />In short, fastboot is the interface to connect your computer to the bootloader via USB. It can re-flash any part of the system except the bootloader itself.<br />To see all fastboot oem commands type: `fastboot oem ?`</li></ul><h2>Hacking</h2><h3>Step 1: <a href="http://revolutionary.io/">Revolutionary</a></h3><p>This is the only step without any danger, except you will lose warranty. Do as the site says; no tricks.</p><h3>Step 2: Backup</h3><p><em>Boot into recovery: hold vol down + power, wait, press vol down, wait, press vol down twice, press power, wait for boot.</em></p><p>This was the step that went partly wrong in my case, therefore I&#8217;m currently unable to restore the stock system. The thing is that I did do the backup in Clockworkmod but after reboot, it constantly says md5 mismatch. Later I&#8217;ve found that it says this for all backups but while most of them is correct ( <a href="http://forum.xda-developers.com/showthread.php?t=976453">and can be solved by regenerating md5 hashed, as described here</a> ), though my system.img really went wrong: I&#8217;m unable to re-flash it even with fastboot.</p><h3>Step 3: Flash your custom ROM</h3><p>This is really easy. Copy the .zip file to the sdcard, boot into recovery, wipe data, wipe cache, wipe dalvik cache, and install zip. That&#8217;s all.</p><h3>Step 4: Wait</h3><p>First boot takes a long time. The Dalvik ( imagine as JVM for android ) compiles what needs to be compiled. This is stored in /data/dalvik-cache.</p><h2>Troubles and solvings</h2><h3>Recovery claims: unable to mount sdcard</h3><p>Get into fastboot and send the following command:</p><pre class="hljs"><code class="">fastboot oem enableqxdm 0</code></pre><h3>No USB Mass storage</h3><p>Something happens, but the storage doesn&#8217;t show up.</p><p>Get into fastboot and try:</p><pre class="hljs"><code class="">fastboot oem eraseconfig</code></pre><p>Reboot, try mounting usb. If it fails: <a href="http://forum.xda-developers.com/showthread.php?t=1143252">http://forum.xda-developers.com/showthread.php?t=1143252</a></p><h2>Tweaks</h2><h3>Remove system apps</h3><p><a href="http://wiki.cyanogenmod.com/wiki/Barebones">http://wiki.cyanogenmod.com/wiki/Barebones</a></p><h2>Restore stock ROM</h2><p>Follow the instructions ( Hungarian, so use G translate :) )</p><p><a href="http://pzoley.matraszele.hu/desire.php?p=wiki&amp;i=27">http://pzoley.matraszele.hu/desire.php?p=wiki&amp;i=27</a></p><p>&nbsp;</p><p><em>And &#8230; don&#8217;t forget to sleep. It&#8217;s important. </em></p><p><p>Visit the post at <a href="http://petermolnar.eu/linux-tech-coding/htc-desire-bravo-roms-updates-pain-and-suffering/">HTC Desire (Bravo): ROMs, updates, pain and suffering</a></p></p>]]></content:encoded>
			<wfw:commentRss>http://petermolnar.eu/linux-tech-coding/htc-desire-bravo-roms-updates-pain-and-suffering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>