<?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>The blog of Karl Majer... &#187; Mobile Devices</title>
	<atom:link href="http://www.karlmajer.com/category/work/mobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.karlmajer.com</link>
	<description>Life on my own terms...</description>
	<lastBuildDate>Mon, 28 Mar 2011 17:04:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Dell Streak OEM Version Codes</title>
		<link>http://www.karlmajer.com/2011/02/08/dell-streak-oem-version-codes/</link>
		<comments>http://www.karlmajer.com/2011/02/08/dell-streak-oem-version-codes/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 01:54:08 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Devices]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=158</guid>
		<description><![CDATA[I&#8217;ve been doing quite a bit of work on modifying the Dell Streak for one of my clients. The problem is that while there are quite a few images out there available to download, I wasn&#8217;t able to find any key mapping OEM version to telco carrier so I could figure out which telco&#8217;s handset [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing quite a bit of work on modifying the Dell Streak for one of my clients. The problem is that while there are quite a few images out there available to download, I wasn&#8217;t able to find any key mapping OEM version to telco carrier so I could figure out which telco&#8217;s handset I was modifying. I&#8217;ve finally tracked it down and this should hopefully save others some pain:</p>
<p>Last 2 digits of OEM String &#8211; Carrier<br />00 &#8211; Unlocked<br />21 &#8211; O2 UK<br />31 &#8211; AT&amp;T<br />32 &#8211; Rogers<br />33 &#8211; T-Mobile</p>
<p>Enjoy,</p>
<p>Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2011/02/08/dell-streak-oem-version-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick root on Nexus S</title>
		<link>http://www.karlmajer.com/2011/01/29/quick-root-on-nexus-s/</link>
		<comments>http://www.karlmajer.com/2011/01/29/quick-root-on-nexus-s/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 18:53:35 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[nexusS]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=151</guid>
		<description><![CDATA[Capturing some data here so that its not lost when I go looking for it again. I discovered quite by accident that the Clockwork recovery image allows adb to connect to it while sitting at the recovery menu. The adb shell is a root shell. You can use clockwork to mount whatever filesystems you may [...]]]></description>
			<content:encoded><![CDATA[<p>Capturing some data here so that its not lost when I go looking for it again.</p>
<p>I discovered quite by accident that the Clockwork recovery image allows adb to connect to it while sitting at the recovery menu. The adb shell is a root shell. You can use clockwork to mount whatever filesystems you may need to work on. This means that you can take any of the su binaries floating around the net, or even hack a bit and then build the su thats in the Android tree,  and dump it in /system/bin/su while in the recovery menu and then chmod it 4755 to suid it root.</p>
<p>So basically:</p>
<ul>
<li>boot nexus S into fastboot with vol up and  power</li>
<li>pick recovery off the menu</li>
<li>from the recovery menu:
<ul>
<li>mount /system partition</li>
</ul>
</li>
<li>from adb:
<ul>
<li>adb push /path/to/your/su/binary  /system/bin/su</li>
<li>adb shell
<ul>
<li>chmod 4755 /system/bin/su</li>
</ul>
</li>
</ul>
</li>
<li>from the recovery menu:
<ul>
<li>reboot device</li>
</ul>
</li>
</ul>
<p>When the handset comes back up, adb in as normal, and then issue an su command and you should be root.</p>
<p>&gt;&gt;&gt;Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2011/01/29/quick-root-on-nexus-s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a Android (Froyo) build environment on EC2</title>
		<link>http://www.karlmajer.com/2011/01/21/setting-up-a-android-froyo-build-environment-on-ec2/</link>
		<comments>http://www.karlmajer.com/2011/01/21/setting-up-a-android-froyo-build-environment-on-ec2/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 16:39:15 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Froyo]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=149</guid>
		<description><![CDATA[I had to prep an EC2 instance for some Android handset build work I&#8217;m doing for a client. My VMs weren&#8217;t cutting it anymore. This is basically me documenting the quick and dirty steps required to prep an Ubuntu 10.04 instance on EC2 (AMI: be0ffed7). I&#8217;m assuming you have basic knowledge of how to use EC2, [...]]]></description>
			<content:encoded><![CDATA[<p>I had to prep an EC2 instance for some Android handset build work I&#8217;m doing for a client. My VMs weren&#8217;t cutting it anymore. This is basically me documenting the quick and dirty steps required to prep an Ubuntu 10.04 instance on EC2 (AMI: be0ffed7).</p>
<p>I&#8217;m assuming you have basic knowledge of how to use EC2, but if not, in very very generalized terms (and from memory):</p>
<ul>
<li>Go register for an account</li>
<li>Add EC2 to your account</li>
<li>Select the EC2 dashboard.</li>
<li>Select volumes and create an EBS volume for your build partition.
<ul>
<li> I used a 50G partition</li>
</ul>
</li>
<li>Select AMIs and search for the particular flavor of Ubuntu you&#8217;re after
<ul>
<li>You may need to change the filters at the top of the results box to get it to display all of the options, I believe it defaults on just your own.</li>
<li>I used 10.04 64 bit ami, specifically ami-be0ffed7</li>
<li>Make sure its an EBS ami and not an instance image, the difference being the EBS is permanent and your changes will not be lost across reboots</li>
</ul>
</li>
<li>Hit the launch button and then answer the questions about the type of machine you wish to run on.</li>
<li>You will need to create a set of keypairs used to log in to the machine once its up on the network. </li>
<li>You will also probably be asked questions about the security groups at some point during the question and answer process. 
<ul>
<li>All I did for my EC2 instance was add ssh so I could get into it remotely. For all I know I&#8217;ve left a truck sized security hole in the config.</li>
</ul>
</li>
<li>Go back to the volumes and associate your build partition with the AMI you just built. It will ask you to assign a device path, I used /dev/sdf<br /> 
<ul>
</ul>
</li>
<li>At some point on the instances panel you will see that your instance is up and running, select the instance, select actions and pick connect. Follow the instructions and log in.
<ul>
<li>use the user ubuntu and not root.</li>
</ul>
</li>
</ul>
<p>By now you should be sitting at a prompt on your freshly started instance. Go ahead and label, mkfs, and mount the build volume and then cd into that partition.</p>
<p>I originally used the instance hosts instead of the EBS hosts, so I had to rebuild the environment every time I used the instance. I&#8217;d since figured out how to use an EBS ami but I&#8217;d done it so often that I&#8217;d written the script below to handle installing all the packages that were required. I pulled the java package from java.sun.com.</p>
<blockquote>
<p>#!/bin/sh</p>
<p>#update the repos, I had some issues with the ec2 default ubuntu repos, this fixed it.<br />sudo aptitude update</p>
<p># any bitness<br />sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev</p>
<p>#generally useful for all<br />sudo apt-get install valgrind</p>
<p>#64bit<br />sudo apt-get install ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib</p>
<p>#java<br />echo &#8220;Installing already unpackaged java to /usr/local/&#8221;<br />sudo tar -cpvf &#8211; jdk1.5.0_22 |sudo  tar -C /usr/local -xpf -</p>
<p>echo &#8220;Adding export JAVA_HOME=/usr/local/jdk1.5.0_22 to your .bashrc&#8221;<br />echo &#8220;Adding export ANDROID_JAVA_HOME=\$JAVA_HOME to your .bashrc&#8221;</p>
<p>echo &#8220;export JAVA_HOME=/usr/local/jdk1.5.0_22&#8243; &gt;&gt; ~/.bashrc<br />echo &#8220;export ANDROID_JAVA_HOME=\$JAVA_HOME &#8221; &gt;&gt; ~/.bashrc</p>
<p>echo &#8220;Updating your path&#8221;<br />echo &#8220;export PATH=/build/codeaurora/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/:/usr/local/jdk1.5.0_22/bin:$PATH&#8221; &gt;&gt; ~/.bashrc~</p>
</blockquote>
<p>Now you should be able to checkout and build whatever flavor of Android you&#8217;re working with. I used the froyo-almod from the codeaurora forums.</p>
<p>&gt;&gt;&gt;Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2011/01/21/setting-up-a-android-froyo-build-environment-on-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADB on VMWare Fusion &#124;&#124; CentOS</title>
		<link>http://www.karlmajer.com/2011/01/11/adb-on-vmware-fusion-centos/</link>
		<comments>http://www.karlmajer.com/2011/01/11/adb-on-vmware-fusion-centos/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 15:24:42 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Hardware Hacking]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=147</guid>
		<description><![CDATA[A note to myself really, I was trying to get ADB to run on both my CentOS 5.5 machine and a VMWare Fusion Virtual Machine running Ubunto. Both flavors of linux protested my using adb with something along the lines of: majer@ubuntu:~/android$ sudo ~/bin/adb devices List of devices attached ????????????    no permissions   After a [...]]]></description>
			<content:encoded><![CDATA[<p>A note to myself really, I was trying to get ADB to run on both my CentOS 5.5 machine and a VMWare Fusion Virtual Machine running Ubunto. Both flavors of linux protested my using adb with something along the lines of:</p>
<blockquote>
<pre>majer@ubuntu:~/android$ sudo ~/bin/adb devices</pre>
<pre>List of devices attached ????????????    no permissions</pre>
<pre> </pre>
</blockquote>
<p>After a considerable amount of digging I found the one line change that needed to be made on both OSes. Add the following to /etc/udev/rules.d/51-android.rules:</p>
<blockquote>
<pre>SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
</pre>
</blockquote>
<p>And then restart the adb services with a:</p>
<blockquote>
<pre>[majer@ubuntu:~/android/] sudo ~/bin/adb kill-server</pre>
<pre>[majer@ubuntu:~/android/] sudo ~/bin/adb start-server
</pre>
</blockquote>
<p>The adb command will work as expected now.</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2011/01/11/adb-on-vmware-fusion-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Week with an iPad</title>
		<link>http://www.karlmajer.com/2010/04/10/a-week-with-an-ipad/</link>
		<comments>http://www.karlmajer.com/2010/04/10/a-week-with-an-ipad/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:30:06 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Play]]></category>
		<category><![CDATA[iPhone/iPad]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/2010/04/10/a-week-with-an-ipad/</guid>
		<description><![CDATA[So I&#8217;ve had an iPad for a week now. I&#8217;m one of those that pre-ordered the device shortly after they were available on the Apple store. I thought I&#8217;d take a moment and jot down my thoughts on the device in no particular order. Context is everything with this device. If you were hoping to [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve had an iPad for a week now. I&#8217;m one of those that pre-ordered the device shortly after they were available on the Apple store. I thought I&#8217;d take a moment and jot down my thoughts on the device in no particular order.</p>
<p>Context is everything with this device. If you were hoping to replace a laptop or skip out on getting that netbook by buying an iPad, I&#8217;m afraid you&#8217;re in for a rude awakening. I have gotten in the habit of reading technical manuals on my laptop prior to going to bed at night. I wanted to simplify things and purchase something smaller and lighter to let me continue my light reading in the evenings. I contemplated buying a Kindle at first, but decided to hold off after Apple first made mention of their device. </p>
<p>With that point of view in mind, the device has been quite successful in meeting, if not exceeding, my expectations. I have iBooks, Kindle for iPad, and GoodReader for iPad installed on the iPad and between the three applications, there is little I cannot read. I do wish that the iTunes Bookstore carried technical books, but I can always pull down the kindle versions of those, or buy pdf versions and view them in GoodReader. </p>
<p>Just a quick kudos to the GoodReader guys. The app offers almost a dozen different ways to get data into it from your iPad. When I first tried it, I was having issues with the iTunes integrated sync, but then realized that the app has an integrated webserver that can be connected to as a network folder (I&#8217;m on a mac) and then it was literally just drag and drop. I&#8217;ve also have yet to find a pdf that it can&#8217;t open and read. Well done guys.</p>
<p>So, using the iPad as an ebook works splendidly. The screen doesn&#8217;t require ambient light like the kindle does, and the controls on the various readers let you adjust the brightness/contrast as needed. I&#8217;ve already chewed through a few books in my nightly habit of reading for at least an hour.</p>
<p>As to the bonuses, the iPad is just the right size to comfortably lay in bed and watch content from iTunes U. Some of the Stanford lectures are outstanding and are free as an added bonus. I have also found its just the right size to keep up with my RSS feeds that I tend to consume as well.  And when I feel like relaxing, the free Netflix client (account required) streams a decent selection of movies right to me.</p>
<p>There are a few downsides. The iWorks suite that can be purchased is tolerable at best on the virtual keyboard. I&#8217;m used to Excel and so caught a double whammy with the mind shift to how Numbers does things, and not having a full keyboard for data entry. Keynote was actually the best of the three, I was able to throw together a quick presentation without too much effort, and Pages works fine for a quick note, but I wouldn&#8217;t want to try and take notes in a class or a meeting on the device. I can almost touch type on the virtual keyboard until I hit a need for a special character. Then you&#8217;re flipping to another keyboard screen to get access to those. They should really move the apostrophe to the first keyboard.</p>
<p>So as I said, based on what I intended to use the device for,  the iPad exceeds my expectations. I know there are other people whining about not being able to code on it, and/or it still being limited because its running iPhoneOS instead of MacOSX (which would have absolutely rocked), but frankly, at the end of the day I&#8217;d rather read a book than stare at more code.</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2010/04/10/a-week-with-an-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with macs, CACs, and Certs (and iPhone dev).</title>
		<link>http://www.karlmajer.com/2010/02/23/fun-with-macs-cacs-and-certs-and-iphone-dev/</link>
		<comments>http://www.karlmajer.com/2010/02/23/fun-with-macs-cacs-and-certs-and-iphone-dev/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:47:09 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[cac cards]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[win7]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=132</guid>
		<description><![CDATA[Just a quick post to save others some time and a little pain: OSX 10.6.2 + SCR3110 CAC reader + new GX4 CAC card == No love on OSX. Keychain sees the card as empty. However, 10.6.2 + VMWare + win7-64 + reader + CAC card + IE works just fine without any of the [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post to save others some time and a little pain:</p>
<p>OSX 10.6.2 + SCR3110 CAC reader + new GX4 CAC card == No love on OSX. Keychain sees the card as empty.</p>
<p>However, 10.6.2 + VMWare + win7-64 + reader + CAC card + IE works just fine without any of the add-on software used on XP. You&#8217;ll need to pass the reader through to the VM by clicking on the little USB icons in the bottom right.</p>
<p>On another note, a Verisign EAC Certificate loaded in your keychain will cause codesign to hang for 8-10 minutes while it asks oscpd to validate the cert. This also happens when you use Keychain Access to go try and figure out why its taking so long to sign things. Work around it by either dropping your network when you need to sign things, or more permanently, drop your network and then use Keychain Access to remove the cert altogether. Save yourself the pain and load the EAC cert directly into firefox and use that browser to access the EAC enabled sites.</p>
<p>And finally, if you have the reader plugged in with a card in it and try to sign an iPhone application you will probably get the error: CSSMERR_DL_MISSING_VALUE. Keychain Access on 10.6.2 recognizes the reader and if the card is plugged in, Keychain Access seems to want to try and use it for signing. Take the card out of the reader and try again.</p>
<p>>>> Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2010/02/23/fun-with-macs-cacs-and-certs-and-iphone-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

