<?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>Glass Echidna</title>
	<atom:link href="http://www.glassechidna.com.au/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.glassechidna.com.au</link>
	<description>Software down under.</description>
	<lastBuildDate>Sat, 05 Nov 2011 06:47:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Anti-Squish Score Server Back Online</title>
		<link>http://www.glassechidna.com.au/2011/devblogs/anti-squish-score-server-back-online/</link>
		<comments>http://www.glassechidna.com.au/2011/devblogs/anti-squish-score-server-back-online/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 03:41:29 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Devblogs]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=398</guid>
		<description><![CDATA[We recently moved from a server in the United States to an Australian based server. During the transition a few things got broken. I&#8217;m not sure if anyone actually noticed but Anti-Squish&#8217;s score server was down for almost two weeks, oops!

Although I&#8217;d transferred across the score server files and the database, the score server was [...]]]></description>
			<content:encoded><![CDATA[<p>We recently moved from a server in the United States to an Australian based server. During the transition a few things got broken. I&#8217;m not sure if anyone actually noticed but Anti-Squish&#8217;s score server was down for almost two weeks, oops!</p>
<p><span id="more-398"></span></p>
<p>Although I&#8217;d transferred across the score server files and the database, the score server was crashing for some reason. It took a bit of investigation as I was a bit confused as to why the server was crashing outright instead of throwing an exception. After a bit of poking around I stumbled across the following error in httpd&#8217;s error log:</p>
<blockquote><p>PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in /var/www/html/ScoresServer/index.php on line 64</p></blockquote>
<p>Turns out our server didn&#8217;t have the XML modules installed for PHP which was causing a fatal crash within PHP (no exception is thrown when a class can&#8217;t be found). Once I knew this the fix was of course as simple as SSHing into our server and entering the following:</p>
<blockquote><p>yum install php-xml<br />
service httpd restart</p></blockquote>
<p>Anyway, the score server is now up and running again so go download <a href="http://www.glassechidna.com.au/products/android-apps/anti-squish/">Anti-Squish or Anti-Squish Lite</a> from the Android Market!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2011/devblogs/anti-squish-score-server-back-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heimdall Suite 1.3.1 Released</title>
		<link>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-1-released/</link>
		<comments>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-1-released/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 05:26:56 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Devblogs]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=394</guid>
		<description><![CDATA[It&#8217;s been several weeks since I pushed the source code for Heimdall Suite 1.3.1 to Github but I&#8217;ve finally got around to uploading binaries. Not to say that I wasn&#8217;t trying. It&#8217;s almost as if Apple went out of their way to make it ludicrously difficult for me to make a release utilising OS X [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been several weeks since I pushed the source code for Heimdall Suite 1.3.1 to Github but I&#8217;ve finally got around to uploading binaries. Not to say that I wasn&#8217;t trying. It&#8217;s almost as if Apple went out of their way to make it ludicrously difficult for me to make a release utilising OS X Lion. Qt 4.7 doesn&#8217;t technically support OS X Lion and Apple have totally dropped support for PowerPC, Tiger and Leopard.</p>
<p>I&#8217;m sure the details aren&#8217;t really of all the much interest to you non-developer folk, so I&#8217;ll save you all from boring details. However, I should probably save other developers from going through what I had to. If I get a chance a separate blog post that details how to get a cross-compiling environment up and running on OS X Lion is definitely in order.</p>
<p>Apple-specific issues aside&#8230;</p>
<p><span id="more-394"></span>Heimdall 1.3.1 is quite an important update. Apparently Heimdall&#8217;s repartitioning functionality was not working in prior releases. However with some help from the XDA developers community a fix has been implemented and verified as working.</p>
<p>On top of repartitioning fix there have been substantial improvements made to Heimdall&#8217;s &#8211;no-reboot functionality. Previously not rebooting your device was only really useful if you wanted to boot straight into recovery mode after performing a flash. However the changes made in version 1.3.1 allow Heimdall to detect for and resume an existing session with a device. This is particularly useful for Heimdall Frontend users who want to dump their PIT file and then immediately perform a flash. From a usability stand-point this is a very nice improvement.</p>
<p>Downloads are available from the <a href="http://www.glassechidna.com.au/products/heimdall/">Heimdall product page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-1-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Heimdall Suite 1.3.0 and Anti-Squish Graphical Update</title>
		<link>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-0-and-anti-squish-graphical-update/</link>
		<comments>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-0-and-anti-squish-graphical-update/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 07:15:36 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Anti-Squish]]></category>
		<category><![CDATA[Devblogs]]></category>
		<category><![CDATA[Heimdall]]></category>
		<category><![CDATA[Galaxy S]]></category>
		<category><![CDATA[Open-Source]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=376</guid>
		<description><![CDATA[Over last couple of weeks I've been running a Heimdall and Heimdall Frontend 1.3 Beta via the <a href="http://forum.xda-developers.com/">XDA Developers forums</a>. However, on top I've that I've somehow finally managed to find some time to release the somewhat illusive Anti-Squish graphical update.  Anti-Squish is my little casual Android game. Up until recently it's had some pretty terrible programmer art created by none other than the incredibly untalented "me". But a big thanks goes out to <a href="http://www.amoraleite.com/">Amora Leite</a> who has totally revamped the graphical side of things. The new graphics look absolutely fantastic!]]></description>
			<content:encoded><![CDATA[<p>After a short beta testing period over at the <a href="http://forum.xda-developers.com/">XDA Developers forums</a>, Heimdall 1.3.0 (an enormous update) is now ready for release. However, on top of this, I&#8217;ve somehow finally managed to find some time to release the somewhat illusive Anti-Squish graphical update. Anti-Squish is my little casual Android game. Up until recently it&#8217;s had some pretty terrible programmer art created by none other than the incredibly untalented &#8220;me&#8221;. But a big thanks goes out to <a href="http://www.amoraleite.com/">Amora Leite</a> who has totally revamped the graphical side of things. The new graphics look absolutely fantastic!</p>
<div align="center"><img src="http://www.glassechidna.com.au/product/android-apps/anti-squish/icon_HD.png" alt="Anti-Squish's New Logo" /></div>
<p><span id="more-376"></span></p>
<p>I don&#8217;t know how much Anti-Squish will appeal to you die-hard firmware flashing folk, but if you&#8217;ve got some time to kill then please give it a try. There&#8217;s a Lite edition with limited functionality as well as the fully functional $2.00 (AUD) paid version. Even if you&#8217;re not overly interested you could consider your purchase a small donation towards Heimdall&#8217;s cause. If you head over to the <a href="http://www.glassechidna.com.au/products/android-apps/anti-squish/">Anti-Squish product page</a> you can see some screenshots and use the direct Android market links to download the app.</p>
<hr />
<p>Now onto Heimdall Suite 1.3.0. Firstly, this is a enormous release. Some additional functionality has been added to Heimdall (command line) that adds the ability to download a device&#8217;s PIT file and Galaxy S II support has been vastly improved. However the real additions come in the form of a completely revamped Heimdall Frontend. However the changes aren&#8217;t just visual, in particular Heimdall Frontend 1.3.0 now includes support for the creation, loading and flashing of the brand new Heimdall Firmware Package format!</p>
<p><a href="http://www.glassechidna.com.au/product/heimdall/v1_3_0/flash.png"><img src="http://www.glassechidna.com.au/product/heimdall/v1_3_0/flash_small.png" alt="Flash tab." /></a></p>
<p>If you&#8217;ve come from using Heimdall Frontend 1.1.1 then you may be slightly intimidated by the new &#8220;Flash&#8221; tab. The &#8220;Flash&#8221; tab is the place where you can manually map individual files to partitions on a device and perform a flash. This is the same as general idea as the previous release of Heimdall Frontend. The new implementation is substantially more robust. Other than the user interface changes, the main difference is that in order to perform a &#8220;custom flash&#8221; you must always specify a PIT file. This is regardless of whether or not you intend to repartition. The PIT file contains device specific information that Heimdall Frontend utilises in order to ensure the same user interface can be used with <strong>all</strong> Galaxy S devices. This includes device that are presently available as well as devices that are yet to be released.</p>
<p>Galaxy Tab and Galaxy S II users in particular will have noticed that the old Heimdall Frontend 1.1.1 did not provide them with a means to flash all the partitions on their device, also some partitions listed may not have even existed for their device. The new PIT file based user interface ensures that you&#8217;re able to flash all the partitions on your device and you&#8217;ll never see partitions listed that aren&#8217;t for your device.</p>
<p>Of course the new PIT based user interface assumes that you have access to the PIT file that is presently installed on your device. Depending on where your firmware came from then you may have the correct PIT file laying around somewhere on your hard-disk. However that&#8217;s certainly not the case for all users and there&#8217;s always the potential of getting confused if you have multiple PIT files from different firmwares. This is where the brand new &#8220;Utilities&#8221; tab comes in.</p>
<p><a href="http://www.glassechidna.com.au/product/heimdall/v1_3_0/utilities.png"><img src="http://www.glassechidna.com.au/product/heimdall/v1_3_0/utilities_small.png" alt="Utilities tab." /></a></p>
<p>The &#8220;Utilities&#8221; tab provides you with some additional functionality previously only available from Heimdall command line such as the ability to detect a device or close the infamous &#8220;phone <---> PC&#8221; screen. However most importantly, you can use this tab to download your device&#8217;s current PIT file straight from the device itself! No confusion, no mucking about, just connect your device to your PC in download mode, chose where you want to save the PIT file on your PC and download away. Now if you want to perform a custom flash it&#8217;s just as simple as returning to the &#8220;Flash&#8221; tab and selecting the PIT you just downloaded. No stress or confusion, you&#8217;re now able to flash exactly which partitions are presently available on your device!</p>
<p>The new PIT file based flashing is hugely important, but it&#8217;s not the killer feature. As mentioned above Heimdall Frontend now supports a brand new firmware distribution files known as Heimdall Firmware Packages. These are with out a doubt the preferred means of flashing. It takes the technical details of flashing of the shoulders of end-users and hands the responsibility over to the more knowledgeable firmware developers.</p>
<p><a href="http://www.glassechidna.com.au/product/heimdall/v1_3_0/package_details.png"><img src="http://www.glassechidna.com.au/product/heimdall/v1_3_0/package_details_small.png" alt="Load package tab." /></a></p>
<p>From the end-users point of view this new functionality is immediately available as soon as you open Heimdall Frontend, the tab is now the &#8220;Load Package&#8221; tab. After downloading a Heimdall Firmware Package all an end-user needs to do is click the &#8220;Browse&#8221; button and select the package they&#8217;ve downloaded. Heimdall Frontend will automatically decompress the package and display information about the package. The information available includes the firmware name, version, base Android version, developer names, buttons that link to the developer&#8217;s homepage and donation page, a list of included files, and <strong>most important for the end-user, a list supported device!</strong> Assuming the developer filled out the information correctly then straight away the end-user knows if the package they&#8217;ve downloaded will work on their device. If you don&#8217;t see your device listed then it&#8217;s pretty clear you don&#8217;t want to use the package, no more incorrect firmware bricks! Once you confirm your device is listed all you need to do is press the &#8220;Load / Customise&#8221; button and you&#8217;ll be swapped to the &#8220;Flash&#8221; tab, providing you with a chance to customise the package before flashing if you desire. Now assuming your device is connected to the PC in download mode then flashing becomes as simple as pressing the &#8220;Start&#8221; button.</p>
<p>This is absolutely great for the end users, however firmware developers are not forgotten.</p>
<p><a href="http://www.glassechidna.com.au/product/heimdall/v1_3_0/create_package.png"><img src="http://www.glassechidna.com.au/product/heimdall/v1_3_0/create_package_small.png" alt="Create Package tab." /></a></p>
<p>Heimdall Frontend provides a clean interface for creation of a Heimdall Firmware Package. Simply fill out the &#8220;Flash&#8221; tab as you would when performing a custom flash, then make your way over to the &#8220;Create Package&#8221; tab, which will be available after you&#8217;ve filled out the &#8220;Flash&#8221; tab. Then it&#8217;s as simple as filling out the required information and pushing the &#8220;Build&#8221; button and Heimdall Frontend will spit out a fully redistributable compressed Heimdall Firmware Package! Not only does distributing your packages in this format guarantee that users can flash your firmware from Windows, Linux and OS X, the hugely simplified flashing procedure (over previous versions of Heimdall and current versions of Odin) means that you have the ability to help save a lot of bricks. There&#8217;s also the added benefit of ensuring users know who created the package and if you want you&#8217;re able to provide them with a simple means to donate to your cause as well as customer supported and detailed information from your homepage.</p>
<p>All in all Heimdall Frontend 1.3.0 includes some amazing new features that benefit end-users and developers alike. However compared to the previous release performing a custom flash is definitely a slightly more involved process. So the key feature of Heimdall Frontend 1.3.0 is without a doubt the new Heimdall Firmware Package functionality. As such I&#8217;m really hoping the Heimdall Firmware Package format will be heavily adopted by firmware developers. </p>
<p>Please remember to always <strong>read the README</strong> included in all Heimdall releases. The README includes detailed instructions for both end-users and developers alike. For Debian users the README will be installed to /usr/share/doc/heimdall/README. <strong>To download the latest release</strong>, make your way over to the <a href="http://www.glassechidna.com.au/products/heimdall/">Heimdall product page</a> .</p>
<p>As always, a lot of effort goes into the development of Heimdall so please consider <a href="http://www.glassechidna.com.au/donate/">donating</a>. Don&#8217;t forget to check out Anti-Squish, and have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2011/devblogs/heimdall-suite-1-3-0-and-anti-squish-graphical-update/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Heimdall 1.2.0 Command Line Released</title>
		<link>http://www.glassechidna.com.au/2011/devblogs/heimdall-1-2-0-command-line-released/</link>
		<comments>http://www.glassechidna.com.au/2011/devblogs/heimdall-1-2-0-command-line-released/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 20:57:18 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Devblogs]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=355</guid>
		<description><![CDATA[I&#8217;ve just finished uploading the Heimdall 1.2.0 command line binaries. The 1.2.0 release doesn&#8217;t contain any Heimdall Frontend updates however Heimdall Frontend 1.1.1 is forwards compatible and works fine with the 1.2.0 command line binaries.

The following information is shamelessly taken from my own forum post.
The update will be command line only (for now) and adds [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished uploading the Heimdall 1.2.0 command line binaries. The 1.2.0 release doesn&#8217;t contain any Heimdall Frontend updates however Heimdall Frontend 1.1.1 is forwards compatible and works fine with the 1.2.0 command line binaries.<br />
<span id="more-355"></span><br />
<em>The following information is shamelessly taken from my own forum post.</em></p>
<p>The update will be command line only (for now) and adds the following functionality:</p>
<ul>Support for the Galaxy S II! (Hopefully, keep reading.)</p>
<li>Support for SHW-M110S (Korean Galaxy S).</li>
<li>Improved support for Galaxy Tab, Captivate and Vibrants (see below).</li>
<li>No reboot option.</li>
<li>Dump the devices PIT file and print the information in a human readable format.</li>
<li>Support for more named partition parameters i.e. &#8211;hidden, &#8211;movinand.</li>
<li>One more major feature (read below).</li>
</ul>
<p>The biggest change is probably that proper support for PIT files is now included. This means that less things are hard-coded. Instead Heimdall will be grabbing data from your device&#8217;s PIT file or the PIT file you specify when repartitioning. This may seem like it has minor impact on the usefulness of Heimdall but it actually allowed me to add a second method of specifying files to be flashed to your phone.</p>
<p>You can now type:<br />
<br /><code>heimdall flash --&#60;partition identifier&#62; &#60;filename&#62;</code></p>
<p>i.e.<br />
<br /><code>heimdall flash --6 zImage</code></p>
<p>This essentially means you can flash any file your device supports as long as you know the partition identifier. Of course I don&#8217;t expect you to know them off the top of your head. This is where the PIT file dumping functionality comes in.<br />
<br /><code>heimdall print-pit</code></p>
<p>Presto! You now have a complete list of all the flashable partitions on your device.</p>
<p>Another minor change is that I&#8217;ve removed the restriction on needing to specify bootloaders (or any files in particular) when repartitioning. However, this was in place as a safety feature. I honestly have no idea whether repartitioning without certain files is safe, and I have no immediate plans to find out. So please be careful!</p>
<p>As usual, to get your mitts on the latest release, just head over to the <a href="http://www.glassechidna.com.au/products/heimdall/">heimdall product page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2011/devblogs/heimdall-1-2-0-command-line-released/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Heimdall Suite 1.1.1 Released</title>
		<link>http://www.glassechidna.com.au/2010/devblogs/heimdall-suite-1-1-1/</link>
		<comments>http://www.glassechidna.com.au/2010/devblogs/heimdall-suite-1-1-1/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 23:50:46 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Devblogs]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=335</guid>
		<description><![CDATA[Version 1.1.1 of the Heimdall Suite was just recently released. The changes are fairly minor, unless you own a Galaxy Tab there is no need to upgrade immediately. However, installation, compilation and packaging has been greatly simplified with this release.

Bug Fixes:

Fixed modem flashes for Galaxy Tab i.e. Reverted from the &#8220;Kies method&#8221; back to the [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.1.1 of the Heimdall Suite was just recently released. The changes are fairly minor, unless you own a Galaxy Tab there is no need to upgrade immediately. However, installation, compilation and packaging has been greatly simplified with this release.<br />
<span id="more-335"></span><br />
<strong>Bug Fixes:</strong></p>
<ul>
<li>Fixed modem flashes for Galaxy Tab i.e. Reverted from the &#8220;Kies method&#8221; back to the &#8220;Odin method&#8221; of flashing modem files.</li>
</ul>
<p><strong>System Support Changes:</strong></p>
<ul>
<li>OS X binaries are now universal. Intel 32-bit, Intel/AMD 64-bit and PowerPC are all supported.</li>
</ul>
<p><strong>Installation Changes:</strong></p>
<ul>
<li>The OS X package <strong>should</strong> now include Qt 4.7.1.</li>
<li>Debian packages now install binaries to /usr/bin as opposed to /usr/local/bin.</li>
<li>Debian packages now take care of udev rules in a more standard complaint fashion.</li>
</ul>
<p><strong>Compilation Changes:</strong></p>
<ul>
<li>Heimdall Frontend can now be installed to any location by using &#8220;qmake OUTPUTDIR=/desired/output/dir&#8221;.</li>
<li>On Linux running &#8220;make install&#8221; for Heimdall command line tool will now install the udev rules.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/devblogs/heimdall-suite-1-1-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Heimdall Suite 1.1.0 Now Available (Brand New GUI)</title>
		<link>http://www.glassechidna.com.au/2010/devblogs/heimdall-1-1-0-suite-now-available-brand-new-gui/</link>
		<comments>http://www.glassechidna.com.au/2010/devblogs/heimdall-1-1-0-suite-now-available-brand-new-gui/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 14:29:21 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Devblogs]]></category>
		<category><![CDATA[Heimdall]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[Flashing]]></category>
		<category><![CDATA[Galaxy S]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Source code]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=301</guid>
		<description><![CDATA[I&#8217;ve finally finished compiling, packaging and uploading the various releases of Heimdall 1.1.0 and the new Heimdall Frontend 1.1.0, collectively Heimdall Suite 1.1.0. This release is much more comprehensive than the previous release. As usual we&#8217;re distributing Windows and OS X binaries however the installation process is much more user friendly for both of these [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally finished compiling, packaging and uploading the various releases of Heimdall 1.1.0 and the new Heimdall Frontend 1.1.0, collectively Heimdall Suite 1.1.0. This release is much more comprehensive than the previous release. As usual we&#8217;re distributing Windows and OS X binaries however the installation process is much more user friendly for both of these platforms. It takes a whooping 4 hours or so to compile Qt, so we figured it is also about time we start making Linux packages available directly from our website. Unfortunately we only have access to a limited number of Linux systems and the 4+ hour build process means it&#8217;s slow going. Right now we&#8217;ve only got AMD64 debian packages up. At least that small demographic is nicely covered <img src='http://www.glassechidna.com.au/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-301"></span></p>
<p>Whilst we&#8217;re talking about packages I should note that the packages listed here (in their present state) are not suitable for redistribution via regular repositories as the packages are almost certainly missing dependencies. The last 48 hours have been pretty hectic so it&#8217;s been a bit of a rush, but we&#8217;ll sort out the dependencies at some stage. I also have a strong feeling I&#8217;m going to end up having to statically link Qt into OS X binaries, bare with us though.</p>
<p>Okay, I&#8217;ve said this release is substantially more comprehensive than the previous release, if the packages aren&#8217;t great then what am I talking about? Well there are a quite a few new features, but I&#8217;m also referring to the <a href="https://github.com/Benjamin-Dobell/Heimdall">shiny new git repository</a>, courtesy off github. The github repository includes; source for both the Heimdall command line tool and Heimdall Frontend, a recent checkout of libusb-1.0, GNU build files, Visual Studio 2010 projects, drivers, scripts and documentation. There&#8217;s basically everything you need to get Heimdall compiled and running on any of the various supported platforms.</p>
<p>If you&#8217;re not a developer, you&#8217;re probably well and truly bored of all this source code, github and packaging rubbish by now, so I&#8217;ll get right to it. Here is a quick list of the new features and changes included in Heimdall 1.1.0:</p>
<ul>
<li><strong>The inclusion of Heimdall Frontend.</strong></li>
<li>Galaxy Tab support.</li>
<li>Simplified driver installation mechanism for Windows (zadig.exe).</li>
<li>Better flashing progress feedback for non-verbose mode.</li>
<li>Repartitioning.</li>
<li>Removed the PIT file requirement when not repartitioning.</li>
<li>Fixed the flashing progress bar on the phone/tab itself.</li>
<li>Added the ability to flash the EFS, the recovery image and the backup  copy of the secondary bootloader. It is intentional that only the  recovery image is available from Heimdall Frontend.</li>
</ul>
<p>Obviously the main feature is the inclusion of Heimdall Frontend. Tech-wizzes have already been getting great mileage out of Heimdall however the new GUI should make Heimdall a lot more accessible to your everyday user. The interface is designed to be similar enough to Odin so that users don&#8217;t have a heart-attack when they see it. However it also makes a lot more features immediately accessible, such as kernel-only flashes. It also includes safety-nets to prevent some of the more common flashing disasters, i.e. Repartitioning without flashing all the necessary files, or flashing an archive instead of individual files.</p>
<p>I&#8217;d like to extend a big thank-you to those of you what have donated, your support has made the last 48 hours somewhat more bearable.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/devblogs/heimdall-1-1-0-suite-now-available-brand-new-gui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anti-Squish 1.0.0 Lite/Free Now Available</title>
		<link>http://www.glassechidna.com.au/2010/projects/android/anti-squish-1-0-0-litefree-now-available/</link>
		<comments>http://www.glassechidna.com.au/2010/projects/android/anti-squish-1-0-0-litefree-now-available/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 12:23:10 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Anti-Squish]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=292</guid>
		<description><![CDATA[I just got around to releasing the Lite edition of Anti-Squish. So if you&#8217;re unsure about Anti-Squish and you would like to give it a go you can download the Lite edition for free. The Lite edition includes one full game mode, Rush. At present the Lite edition doesn&#8217;t include any ads, and if possible [...]]]></description>
			<content:encoded><![CDATA[<p>I just got around to releasing the Lite edition of Anti-Squish. So if you&#8217;re unsure about Anti-Squish and you would like to give it a go you can download the Lite edition for free. The Lite edition includes one full game mode, Rush. At present the Lite edition doesn&#8217;t include any ads, and if possible we&#8217;d like to keep it that way. If you&#8217;re a casual gamer and you like to try before you buy then now is your chance, here&#8217;s a <a href="market://details?id=au.com.glassechidna.antisquishlite">direct market link</a> for those of you browsing on an android phone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/projects/android/anti-squish-1-0-0-litefree-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anti-Squish (Our first Android app)</title>
		<link>http://www.glassechidna.com.au/2010/projects/android/anti-squish-our-first-android-app/</link>
		<comments>http://www.glassechidna.com.au/2010/projects/android/anti-squish-our-first-android-app/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 05:33:41 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Anti-Squish]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=263</guid>
		<description><![CDATA[We&#8217;ve just published our first Android app, Anti-Squish!

Anti-Squish is a simple touch controlled casual game. The goal is to score points by helping flies starting on the left or right side of the screen safely make their way across to the opposite side. With flies appearing all over the place be careful to make sure [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just published our first Android app, Anti-Squish!</p>
<p><img src="http://www.glassechidna.com.au/product/android-apps/anti-squish/promotion.png" alt="Anti-Squish!" /></p>
<p>Anti-Squish is a simple touch controlled casual game. The goal is to score points by helping flies starting on the left or right side of the screen safely make their way across to the opposite side. With flies appearing all over the place be careful to make sure they don&#8217;t collide, and of course make sure they don&#8217;t get SQUISHED!</p>
<p><span id="more-263"></span></p>
<p>To download the app just <a href="market://details?id=au.com.glassechidna.antisquish">click here</a> (if you&#8217;re browsing on an android device), or search for &#8220;Anti-Squish&#8221; using the android marketplace. Feedback is very much appreciated so feel free to give us a <a href="http://www.glassechidna.com.au/contact/">buzz</a>. We&#8217;ll be adding a product page shortly with more information <em>(<strong>Update:</strong> <a href="http://www.glassechidna.com.au/products/android-apps/anti-squish">Product Page</a>)</em>. For now here are some screenshots:</p>
<table>
<tbody>
<tr>
<td><img src="http://www.glassechidna.com.au/product/android-apps/anti-squish/small_main_menu.png" alt="Main Menu" /></td>
</tr>
<tr>
<td><img src="http://www.glassechidna.com.au/product/android-apps/anti-squish/small_game_double_side_splat.png" alt="Watch out!" /></td>
</tr>
</tbody>
</table>
<p>&#8230; Well what are you waiting for, go buy Anti-Squish!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/projects/android/anti-squish-our-first-android-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unpacking iOS</title>
		<link>http://www.glassechidna.com.au/2010/projects/i-phone/unpacking-ios/</link>
		<comments>http://www.glassechidna.com.au/2010/projects/i-phone/unpacking-ios/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 07:35:08 +0000</pubDate>
		<dc:creator>Aidan Steele</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=258</guid>
		<description><![CDATA[The iDroid Project is an effort to port Linux (and hence Android) to iOS-based devices, e.g. the iPhone, iPod Touch, iPad and (most recently) the Apple TV family. It is making progress in great strides, with computer-less installation being the latest breakthrough.
Getting Linux to run on the device is only half the battle, though. Drivers [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.idroidproject.org/wiki/Main_Page">iDroid Project</a> is an effort to port Linux (and hence Android) to iOS-based devices, e.g. the iPhone, iPod Touch, iPad and (most recently) the Apple TV family. It is making progress in great strides, with computer-less installation being the latest breakthrough.</p>
<p>Getting Linux to run on the device is only half the battle, though. Drivers must be written for the audio system, the touchscreen, the wireless, the accelerometer, Bluetooth, etc. Given the dearth of publicly available data sheets on iOS-based device internals, the design of these drivers must be derived from the disassembly of iOS&#8217; own drivers. Therein lies the challenge.</p>
<p>iOS is an OS X derivative, as Apple likes to claim. This means that it makes use of IOKit-based kernel extensions (&#8220;kexts&#8221;) to interact with hardware. However, <em>unlike </em>its desktop sibling, such kernel extensions are nowhere to be found on the (jailbroken) iOS filesystem. This is because iOS uses a prelinked kernel &#8212; for speed reasons and perhaps even to obfuscate its own internal workings.</p>
<p>Developers in the iDroid Project team have developed a <a href="http://www.idroidproject.org/wiki/IPhone_Kernel_Drivers_Parser_for_IDA_Pro">work-around</a> for this, but its not without its short-comings. The parsing process takes several hours (!) and is not amenable to significant changes in the drivers, i.e. adding / removing bytes. This is where we&#8217;ve started work.</p>
<p><span id="more-258"></span>There are some excellent open source tools required to even get to this stage, however. The prelinked kernel is distributed alongside iOS software updates (i.e. the ipsw files, zip files in disguise) as &#8220;kernelcache&#8221; files. These kernelcache files are wrapped in the <a href="http://theiphonewiki.com/wiki/index.php?title=IMG3_File_Format">IMG3</a> container format and compressed using <a href="http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski">LZSS</a>. Both these encumbrances can be overcome using <a href="https://github.com/planetbeing/xpwn">xpwntool</a>. We can verify that we have successfully decrypted and decompressed the kernelcache file when the output file begins with 0xFEEDFACE, as detailed in the comprehensive <a href="http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html">Mach-O File Format</a> reference.</p>
<p>With the raw prelinked kernel in our hands, we can start rolling up our sleeves and getting into the thick of it. The <a href="http://sourceforge.net/projects/machoview/">MachOView</a> tool and <a href="http://www.suavetech.com/0xed/0xed.html">0xED</a> are very handy for this purpose. Observant readers will note the presence of __PRELINK_TEXT, __PRELINK_STATE and __PRELINK_INFO segments in the file. Though undocumented in Apple&#8217;s reference library, their format can be discerned from the projects on Apple&#8217;s <a href="http://opensource.apple.com/">Open Source</a> site. Of specific interest are <a href="http://opensource.apple.com/source/IOKitUser/IOKitUser-514.16.2/">IOKitUser</a> (version 514.16.2 at time of writing), <a href="http://opensource.apple.com/source/kext_tools/kext_tools-180.2/">kext_tools</a> (version 180.2) and <a href="http://opensource.apple.com/source/xnu/xnu-1504.7.4/">xnu</a> (version 1504.7.4), the kernel itself.</p>
<p>Though targetted at the OS X platform, information gleaned from these projects are relevant to iOS as well. Specifically, we can see that the __PRELINK_TEXT segment is simply a concatenation of all the kext Mach-O objects. There is no delimiter specified for these objects, but we can identify the start of a new object from the Mach-O object header &#8220;magic&#8221;.</p>
<p>The __PRELINK_INFO segment is host to a <em>very</em> informative <a href="http://en.wikipedia.org/wiki/Property_list">property list</a> in XML format. There are entries in this property list corresponding to each extension in the __PRELINK_TEXT segment. There is even enough information in this property list to reconstruct each kernel extension&#8217;s <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KEXTConcept/Articles/infoplist_keys.html">Info.plist</a> and hence have &#8220;correct&#8221; kernel extensions, complete with the appropriate file hierarchy.</p>
<p>Unfortunately, the binary blobs in the __PRELINK_TEXT are not immediately usable. Specifically, they have been stripped of their symbol tables and can no longer be repacked into a new prelinked kernel. Despite this stumbling block, we can still proceed. There are numerous fields in the __PRELINK_INFO property list that do not appear in regular kext property lists. These prelink-specific properties are very useful to us: one such property contains the offset of the extension&#8217;s <a href="http://www.opensource.apple.com/source/xnu/xnu-792.6.56/osfmk/mach/kmod.h">kmod_info_t</a> data structure.</p>
<p>The kmod_info_t data structure contains pointers to the kext&#8217;s two entry points: one for loading the extension and another for unloading. Given that we know the kext&#8217;s location in memory (a benefit of prelinked kernels, much like <a href="http://en.wikipedia.org/wiki/Prebinding">prebound</a> userland apps), we can determine their whereabouts in the executable for debugging purposes. However, to pack a specific kext into a kernel, the packing tool requires access to the kmod_info_t structure, so we must symbolicate it (i.e. give it an entry in the symbol table) .</p>
<p>With all this in mind, we can create an app to automate the process &#8212; and we <a href="https://github.com/aidansteele/prelink_unpack">did</a>! Well, it&#8217;s a work in progress. <img src='http://www.glassechidna.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  If your particular religious affiliation allows you to associate with spaghetti code, feel free to download a copy and jump right in. The code appears to successfully unpack kernelcaches for all devices in the iPhone family, we have yet to test it with others. The repacking process can be accomplished using standard OS X tools, documented in the project&#8217;s <a href="https://github.com/aidansteele/prelink_unpack/wiki/Odds-and-Ends">wiki</a>.</p>
<p>The code is in too rough a state to be used constructively just yet. Once all desired functionality has been completed, the code will be refactored <strong>considerably </strong>and have a proper release. We will also be porting it to Linux (and removing the dependency on OS X) to assist iDroid developers in their endeavour. In any case, we hope to soon start making use of this tool and begin development of some useful kernel extensions for iOS devices. <img src='http://www.glassechidna.com.au/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/projects/i-phone/unpacking-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heimdall 1.0.0 Released</title>
		<link>http://www.glassechidna.com.au/2010/projects/heimdall/heimdall-1-0-0-released/</link>
		<comments>http://www.glassechidna.com.au/2010/projects/heimdall/heimdall-1-0-0-released/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 08:37:58 +0000</pubDate>
		<dc:creator>Benjamin Dobell</dc:creator>
				<category><![CDATA[Heimdall]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.glassechidna.com.au/?p=238</guid>
		<description><![CDATA[So, I&#8217;ve just released the first official version of my cross-platform open source Galaxy S firmware flashing software, known as Heimdall. I previously made several alpha and beta releases over at the XDA developers forums but this is the first official release. A big thanks goes out to all of you over at the XDA [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve just released the first official version of my cross-platform open source Galaxy S firmware flashing software, known as Heimdall. I previously made several alpha and beta releases over at the <a href="http://forum.xda-developers.com/">XDA developers forums</a> but this is the first official release. A big thanks goes out to all of you over at the XDA developers forums who tested Heimdall whilst it was in the early alpha/beta stages of development.</p>
<p>So what exactly does firmware flashing software do? Well, it enables you to upload any firmware, official or not, to your Galaxy S device. In the past those who have wanted to upgrade their device or flash custom firmware have been forced to do so via Samsung Kies or Odin. Both pieces of software only run on Windows and are closed source. Furthermore Samsung Kies is only meant for upgrading official firmware and Odin appears as though it is is leaked Samsung software not at all designed for consumer use.</p>
<p>The protocol used to flash firmware to the Galaxy S is provided by the secondary (second-stage) boot loader running on the device. The boot loaders on the Galaxy S appear to go by the collective name of Loke. Continuing on with the Norse mythology naming scheme (<a href="http://en.wikipedia.org/wiki/Odin">Odin</a> and <a href="http://en.wikipedia.org/wiki/Loki">Loki</a>) that Samsung appears to be using, I chose to name my software <a href="http://en.wikipedia.org/wiki/Heimdall">Heimdall</a>. After the Norse god and guardian of the bi-frost bridge.</p>
<p>If you&#8217;re interested in the development then keep reading. If not, head over to the <a href="http://www.glassechidna.com.au/products/heimdall/">Heimdall product page</a>, read the instructions and get to it!</p>
<p><span id="more-238"></span>First of all, before beginning the development of Heimdall I had to make sure what I was trying to achieve was actually plausible. As I had no information about the Windows drivers that Samsung provides the first step was to come up with a way of sending and receiving data over the USB port of my PC. After a bit of investigation I came across <a href="http://www.libusb.org/">libusb-1.0</a>, which just recently had Windows support integrated, perfect!</p>
<p>So I&#8217;d found how I was going to talk to my phone, but what exactly should I say? The protocol that Loke uses when flashing is not publicly documented. As such in writing this software I got to perform my first real piece of reverse engineering. In order to do so I had to monitor the data being sent and received through my PC&#8217;s USB port during the flashing process. After capturing the whole USB flashing process I was quite daunted, after all it&#8217;s just a bunch of ones and zeroes flying past. Numerous hours of starring blankly at the screen followed. However, after some time I slowly managed to piece together what some of these ones and zeros represented.</p>
<p>First of all, at the very beginning of the flashing process a handshake takes place. Luckily it wasn&#8217;t the type of secure handshake that was going to give me grief, just a simple “hello” really. So my first step was to write a simple piece of software using libusb-1.0, and just perform the initial handshake.</p>
<p>That went off without a hitch so the following few days included many hours of writing and rewriting sections of code as I began to understand the protocol. Data structures started to pop up and C++ class inheritance became the obvious way to cleanly express the protocol.</p>
<p>Eventually I got to the point where I could perform a simple flash without a problem. However, just as I was set to make the first alpha release on the XDA developers forums I experienced somewhat of a setback, in the form of bricking my phone! Now, as it turns out the Galaxy S is somewhat unreliable in the time it takes to respond to messages. The communication just happened to time-out just when the secondary boot loader was being written to my phone. Not having access to a device for over a month really slowed development but a few brave alpha testers gave me some invaluable information.</p>
<p>It didn&#8217;t take me long after getting my phone back from repair to get Heimdall into a reliable state with the timing-out more than accounted for. A bit of code cleaning and a few quick beta releases soon followed. Now that I&#8217;ve been able to verify that third-party Windows and Linux users are successfully able to flash firmware to various Galaxy S devices, I&#8217;m finally ready to make an official release. The release includes binaries for Windows, full source-code (MIT license) and GNU build files and can be <a href="http://www.glassechidna.com.au/products/heimdall/">downloaded here</a>.</p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glassechidna.com.au/2010/projects/heimdall/heimdall-1-0-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

