<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2024-11-19T06:32:32+00:00</updated><id>/feed.xml</id><title type="html">nix’s blog</title><subtitle>Solutions to problems I shouldn&apos;t have, and old cringey posts from when I was 14</subtitle><entry><title type="html">Fixing a Galaxy S with dead internal storage.</title><link href="/2013/12/15/fixing-a-galaxy-s-with-dead-internal-storage.html" rel="alternate" type="text/html" title="Fixing a Galaxy S with dead internal storage." /><published>2013-12-15T00:00:00+00:00</published><updated>2013-12-15T00:00:00+00:00</updated><id>/2013/12/15/fixing-a-galaxy-s-with-dead-internal-storage</id><content type="html" xml:base="/2013/12/15/fixing-a-galaxy-s-with-dead-internal-storage.html"><![CDATA[<p><em>If you just want the image and instructions on how to fix your phone,
skip down to the Downloading/Installing section of the post.</em></p>

<h1 id="how-to-rebuild-a-samsung-galaxy-s-zimage">How to rebuild a Samsung Galaxy S zImage</h1>

<p>A friend of mine asked if I could fix his Galaxy S for him. After
starting it up and poking around I discovered that the build in flash
storage was dead. Since that storage shows up to the system as a SD
card, and theres a space for an external SD card, I figured I’d just
change some stuff in fstab and be done with it.</p>

<p>It’s a UNIX system, I know this. Right?</p>

<p>Not right.</p>

<p>Unfortunately Android doesn’t store it’s mounts in fstab. No, they’re
hardcoded into the init scripts. So change the init scripts and be done
with it.</p>

<p>Nope.</p>

<p>The init scripts are stored in the initrd, which is tacked onto the end
of the kernel image in a proprietary Samsungy way. So no standard
Android tools will extract it so I can modify it. Of course…</p>

<p>But there is still hope! Fortunately someone has already figured
everything out and posted their tools online
<a href="https://github.com/project-voodoo/kernel_repack_utils">here.</a></p>

<p>Using this and the cross compiler found
<a href="http://www.codesourcery.com/sgpp/lite/arm/portal/package5385/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi.bin">here</a>
(I had to modify the kernel repack utils to use this since it’s a
different version than they were built for. If you’re getting this far
that shouldn’t be a problem for you.) I was able to extract the initrd,
modify it to change the device paths, and rebuild the kernel image. Once
I had the rebuilt kernel image I flashed it to the phone, as I’ll go
into below:</p>

<h1 id="downloadinginstalling-the-kernel">Downloading/installing the kernel</h1>

<p>You’ll need a SD card with two MBR FAT32 partitions, the first one
should fill most of the card, you can use it for general storage as you
would a normal SD card, the second should be about 2-4GB big for the
Android /data partition.</p>

<p>I uploaded the custom image I made so that nobody else has to go through
this pain.</p>

<p><a href="https://mega.co.nz/#!R4hgTA4S!B6GZklu8m7GXxUQ6juU4DnXzd3NWjFWlg4INWplYoas">Download</a><br />
<a href="http://terafile.co/89b79d05a435/zImage.new">Mirror</a></p>

<p>This kernel is for the XXJW4 firmwares, if you aren’t already running
one you need to be on it for it to work. The exact firmware I’m running
is available
<a href="http://samsung-updates.com/details/17571/Galaxy_S/GT-I9000/XEU/I9000XXJW4.html">here</a>
“(mirror)”:http://terafile.co/268887f61345/XEU-I9000XXJW4-20120405163836.zip
but any XXJW4 firmware should work. Google can help you find/install
one.</p>

<p>I installed it with <a href="http://glassechidna.com.au/heimdall/">Heimdall</a>
with the following command:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>heimdall flash --KERNEL zImage.new
</code></pre></div></div>

<p>From within the directory with the zImage.new file you downloaded above.
You need to be in download mode (once again, google is your friend) for
this obviously.</p>

<p>Once you reboot, your phone should come up like new, but now all storage
is on the external SD card. Obviously, this card needs to remain in the
phone at all times.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[If you just want the image and instructions on how to fix your phone, skip down to the Downloading/Installing section of the post.]]></summary></entry><entry><title type="html">Dead Mushkin IO Drive</title><link href="/2013/06/08/dead-mushkin-io-drive.html" rel="alternate" type="text/html" title="Dead Mushkin IO Drive" /><published>2013-06-08T00:00:00+00:00</published><updated>2013-06-08T00:00:00+00:00</updated><id>/2013/06/08/dead-mushkin-io-drive</id><content type="html" xml:base="/2013/06/08/dead-mushkin-io-drive.html"><![CDATA[<p>I was recently given a dead 256GB Mushkin IO drive by a friend. Wouldn’t
show up at all on boot, Mushkin firmware update utilities wouldn’t find
it etc. Digging around I found out that it’s based on an Indilinx
Barefoot controller and Samsung Flash memory, and that setting the
jumper next to the SATA connector puts it into factory “technological”
mode. I also managed to find a recent copy of the Indilinx MPTool (used
for reprogramming/upgrading flash drives) thanks to SuperTalent. I’m
putting everything you need to know together here to save y’all some
trouble.</p>

<p>While this guide was tested on a Mushkin IO drive, it should work on any
Indilinx Barefoot based SSD. Let me know your results in the comments.
Note that you must have a drive that shows up as a “Yatapdong Barefoot
ROM” when the factory diagnostic or “technological mode” jumper (right
next to the SATA connector) is set or this most likely wont work for
you.</p>

<ol>
  <li>Download the Indilinx MPTool from
<a href="http://www.supertalent.com/home/forum/viewtopic.php?f=74&amp;t=10867">Here</a>
or
<a href="https://mega.co.nz/#!d0hCjQrS!FReKTyK_P9nJKCvsHuBzii3Zb6V6zsc_ijV2MFJvBoM">Here</a>
and install it.</li>
  <li>Set the factory diagnostic or “technological mode” jumper (right
next to the SATA connector).</li>
  <li>Set your SATA controller to IDE or Compatibly mode.</li>
  <li>Boot into Windows and open up MPTool, if you’re running Vista, 7 or
8 you need to run it as an administrator.</li>
  <li>Your drive should show up in the list of drives on the lower half,
make sure it’s selected.</li>
  <li>Set the Serial Number to random, you can change the Model Number if
you don’t want it to show up as a SuperTalent SSD, doesn’t matter.</li>
  <li>Go to the Flash tab and check Auto Detection.</li>
  <li>Hit the Start button. It should pop up a black console window and
run for a few minutes, spitting out a bunch of text. Sometimes it
will fail right away (within the first 10-20 seconds), just hit
start again and it should run.</li>
  <li>It will tell you to remove the jumper. Remove the jumper, without
disconnecting the drive.</li>
  <li>It’ll sit there for a few more minutes, then the console window
should disappear and it should say FINISH next to your drive.
Congratulations, your drive should be working now and Windows should
start detecting it. As a bonus, your drive is also running the
newest firmware release for the Indilinx controller.</li>
</ol>

<p>After doing this you won’t be able to upgrade or flash your drive using
any of the Mushkin (or any other manufacturer) tools, only MPTool.
However, since you’re at the last firmware version to be released for
this controller, thats probably not a problem.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I was recently given a dead 256GB Mushkin IO drive by a friend. Wouldn’t show up at all on boot, Mushkin firmware update utilities wouldn’t find it etc. Digging around I found out that it’s based on an Indilinx Barefoot controller and Samsung Flash memory, and that setting the jumper next to the SATA connector puts it into factory “technological” mode. I also managed to find a recent copy of the Indilinx MPTool (used for reprogramming/upgrading flash drives) thanks to SuperTalent. I’m putting everything you need to know together here to save y’all some trouble.]]></summary></entry><entry><title type="html">Google Earth on GMA 950 in Ubuntu Linux</title><link href="/2013/05/24/google-earth-on-gma-950-in-ubuntu-linux.html" rel="alternate" type="text/html" title="Google Earth on GMA 950 in Ubuntu Linux" /><published>2013-05-24T00:00:00+00:00</published><updated>2013-05-24T00:00:00+00:00</updated><id>/2013/05/24/google-earth-on-gma-950-in-ubuntu-linux</id><content type="html" xml:base="/2013/05/24/google-earth-on-gma-950-in-ubuntu-linux.html"><![CDATA[<p>Google Earth 7 and up require a better video card than a GMA 950, you’ll
notice this both because of the error it gives you and because you’ll
just see an outline of the countries and no actual earth. For Mac and
Windows this isn’t a problem because Google lists all older versions on
their site. For some reason they’ve decided against listing older
versions for Linux on the download page, even though they still host
them on their servers.</p>

<p>After some trial and error with URLs I figured out the download links
for the Linux packages for 6.2.2 (The last version to work on older
cards) you can find them below.</p>

<p><a href="http://dl.google.com/earth/client/GE6/release_6_2_2/google-earth-stable_6.2.2.6613-r0_amd64.deb">GE 6.2.2 64bit .deb for
Debian/Ubuntu</a></p>

<p><a href="http://dl.google.com/earth/client/GE6/release_6_2_2/google-earth-stable_6.2.2.6613-r0_i386.deb">GE 6.2.2 32bit .deb for
Debian/Ubuntu</a></p>

<p><a href="http://dl.google.com/earth/client/GE6/release_6_2_2/google-earth-stable-6.2.2.6613-0.x86_64.rpm">GE 6.2.2 64bit .rpm for
Fedora/CentOS/RHEL</a></p>

<p><a href="http://dl.google.com/earth/client/GE6/release_6_2_2/google-earth-stable-6.2.2.6613-0.i386.rpm">GE 6.2.2 32bit .rpm for
Fedora/CentOS/RHEL</a></p>

<p>These should work fine on older video cards.</p>

<p><a href="http://www.srh.noaa.gov/images/shv/Google/Linux/">Older versions of Google Earth Pro can be downloaded from
Here.</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Google Earth 7 and up require a better video card than a GMA 950, you’ll notice this both because of the error it gives you and because you’ll just see an outline of the countries and no actual earth. For Mac and Windows this isn’t a problem because Google lists all older versions on their site. For some reason they’ve decided against listing older versions for Linux on the download page, even though they still host them on their servers.]]></summary></entry><entry><title type="html">redsn0w 0.9.15b3 “Usb communication error” on iPhone 3g</title><link href="/2012/11/23/redsn0w-0915b3-usb-communication-error-on-iphone-3g.html" rel="alternate" type="text/html" title="redsn0w 0.9.15b3 “Usb communication error” on iPhone 3g" /><published>2012-11-23T00:00:00+00:00</published><updated>2012-11-23T00:00:00+00:00</updated><id>/2012/11/23/redsn0w-0915b3-usb-communication-error-on-iphone-3g</id><content type="html" xml:base="/2012/11/23/redsn0w-0915b3-usb-communication-error-on-iphone-3g.html"><![CDATA[<p>redsn0w gives a “usb communication error” when used on any iPhone 3g.
The solution is to select the IPSW first, or to use 0.9.14b2 instead.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[redsn0w gives a “usb communication error” when used on any iPhone 3g. The solution is to select the IPSW first, or to use 0.9.14b2 instead.]]></summary></entry><entry><title type="html">Creating a playlist out of all the songs currently on your iPhone/iPod</title><link href="/2012/10/08/creating-a-playlist-out-of-all-the-songs-currently-on-your-iphone-ipod.html" rel="alternate" type="text/html" title="Creating a playlist out of all the songs currently on your iPhone/iPod" /><published>2012-10-08T00:00:00+00:00</published><updated>2012-10-08T00:00:00+00:00</updated><id>/2012/10/08/creating-a-playlist-out-of-all-the-songs-currently-on-your-iphone-ipod</id><content type="html" xml:base="/2012/10/08/creating-a-playlist-out-of-all-the-songs-currently-on-your-iphone-ipod.html"><![CDATA[<p>So I got a new iPhone, and wanted to copy all the music on my old iPhone
to it. I was stupid and didn’t make a playlist when I added the music so
I had no way of doing it automatically. Or so I thought. Fortunately
it’s ridiculously simple to do.</p>

<p><strong>Right click on the Music folder on your old iDevice and click export
and save the file somewhere, then click File -&gt; Library -&gt; Import
Playlist and open the file you created earlier.</strong> You might need to make
sure you select a local playlist before importing so it doesn’t import
to your phone, but I’m not sure on that.</p>

<p>You can now sync your new playlist with your new phone and get all the
songs you had on the old one.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[So I got a new iPhone, and wanted to copy all the music on my old iPhone to it. I was stupid and didn’t make a playlist when I added the music so I had no way of doing it automatically. Or so I thought. Fortunately it’s ridiculously simple to do.]]></summary></entry><entry><title type="html">iTunes error 1439 when restoring iPod Color/Photo/4th gen on Windows 7/Vista</title><link href="/2012/09/27/itunes-error-1439-when-restoring-ipod-color-photo-4th-gen-on-windows-7-vista.html" rel="alternate" type="text/html" title="iTunes error 1439 when restoring iPod Color/Photo/4th gen on Windows 7/Vista" /><published>2012-09-27T00:00:00+00:00</published><updated>2012-09-27T00:00:00+00:00</updated><id>/2012/09/27/itunes-error-1439-when-restoring-ipod-color-photo-4th-gen-on-windows-7-vista</id><content type="html" xml:base="/2012/09/27/itunes-error-1439-when-restoring-ipod-color-photo-4th-gen-on-windows-7-vista.html"><![CDATA[<p>I kept getting error 1439 when trying to restore an iPod Color in
Windows. It would restore fine in OS X and was giveing the same error
across multiple windows computers.</p>

<p>Googling turned up nothing but the solution is dirt simple: <strong>Right
click on iTunes and run as an administrator.</strong></p>

<p>Also, if you have MacDrive installed you probably need to disable it or
you’ll get a “The iPod can not be restored because it contains files
that are in use by another application.” error.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I kept getting error 1439 when trying to restore an iPod Color in Windows. It would restore fine in OS X and was giveing the same error across multiple windows computers.]]></summary></entry><entry><title type="html">Armv6 support possible in Xcode 4.4.1</title><link href="/2012/08/29/armv6-support-looking-possible-in-xcode-441.html" rel="alternate" type="text/html" title="Armv6 support possible in Xcode 4.4.1" /><published>2012-08-29T00:00:00+00:00</published><updated>2012-08-29T00:00:00+00:00</updated><id>/2012/08/29/armv6-support-looking-possible-in-xcode-441</id><content type="html" xml:base="/2012/08/29/armv6-support-looking-possible-in-xcode-441.html"><![CDATA[<p>Supposedly Xcode 4.4.1 drops all support for armv6 processors. It
doesn’t appear to be that way since you can still compile for armv6 by
adding it as a target and the app will run on armv6 devices. However
currently running the app directly from Xcode causes my iPhone to
reboot. I think it may be because of my gimpy (4.1 redd00r) firmware,
I’m gonna reflash when I get home and try again.</p>

<p>Edit: Ok, running stock 4.2.1 everything works exactly the same as it
did in all previous versions of Xcode 4. You just need to add armv6 as a
target, use GDB instead of LLVM for debugging and set the deployment
target to iOS 4.2 (For iPhone 3g, 3.1.3 for 2g). Armv6 works just
peachy, it’s just not the default option anymore.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Supposedly Xcode 4.4.1 drops all support for armv6 processors. It doesn’t appear to be that way since you can still compile for armv6 by adding it as a target and the app will run on armv6 devices. However currently running the app directly from Xcode causes my iPhone to reboot. I think it may be because of my gimpy (4.1 redd00r) firmware, I’m gonna reflash when I get home and try again.]]></summary></entry><entry><title type="html">iPhone Development on the Cheap (Jailbroken iPhone development and debugging the easy free way)</title><link href="/2012/07/05/iphone-development-on-the-cheap-jailbroken-iphone-development-and-debugging-the-easy-free-way.html" rel="alternate" type="text/html" title="iPhone Development on the Cheap (Jailbroken iPhone development and debugging the easy free way)" /><published>2012-07-05T00:00:00+00:00</published><updated>2012-07-05T00:00:00+00:00</updated><id>/2012/07/05/iphone-development-on-the-cheap-jailbroken-iphone-development-and-debugging-the-easy-free-way</id><content type="html" xml:base="/2012/07/05/iphone-development-on-the-cheap-jailbroken-iphone-development-and-debugging-the-easy-free-way.html"><![CDATA[<p>So you want to build jailbroken iOS apps, but are to poor or cheap to
shell out $100 to Apple? No problem at all. Maybe you’ve tried guides
like <a href="http://www.alexwhittemore.com/developing-jailbroken-iphone-ios-401/">this
one</a>
or <a href="http://iphonedevwiki.net/index.php/Xcode">this</a> .</p>

<p>Those guides are great and I build off of them for mine. I’ve used both
methods with older versions of Xcode with great success. But neither
would work for me in newer versions of Xcode. Fortunately I found
another way. An easier way. A way with debugging support. A better way
:)</p>

<p>A way that works in Xcode 4.3.2 and possibly newer:</p>

<ol>
  <li>
    <p>Obviously we’re gonna need a computer with Xcode and a Jailbroken
iDevice.</p>
  </li>
  <li>
    <p>On the computer you need to create a code signing certificate. Open
Keychain Access, click the Keychain Access menu and open the Certificate
Assistant -&gt; Create a Certificate. Create a “Self Signed Root” “Code
Signing” certificate named “iPhone Developer”.</p>
  </li>
  <li>
    <p>On that jailbroken iDevice you’re going to need to install AppSync.</p>
  </li>
</ol>

<p>Installing AppSync is simple:<br />
Add the source http://cydia.hackulo.us to your Cydia sources. Cydia will
give you a warning, because pirates use AppSync. You aren’t going to be
doing that I hope, ignore the warning.</p>

<p>Install AppSync for whatever iOS version you run from Cydia.</p>

<ol>
  <li>
    <p>Open
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist<br />
in whatever editor you use and replace all occurrences of
XCiPhoneOSCodeSignContext with XCCodeSignContext.</p>
  </li>
  <li>
    <p>In your project in Xcode go to your Target settings -&gt; Summary and
scroll to the bottom. Enable Entitlements. Xcode should automatically
create and Entitlements file. Add a new row named “get-task-allow” of
the boolean type with a value of YES. Make sure this row is all the way
left and <em>not</em> part of the keychain-access-groups array. You’ll have to
do this on every project, but it’s not much.</p>
  </li>
  <li>
    <p>Everything should be working now. You may need to use GDB as your
debugger to get debugging working, this can be done in Project -&gt;
Edit Scheme.</p>
  </li>
</ol>

<p>I’m writing most of this from memory so comment if you have any problems
along the way. Also I’ve only been able to test on iOS 3.1.3 devices so
far, on account of that being all I have available.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[So you want to build jailbroken iOS apps, but are to poor or cheap to shell out $100 to Apple? No problem at all. Maybe you’ve tried guides like this one or this .]]></summary></entry><entry><title type="html">How to install Windows Home Server Vail with unsigned SATA/RAID drivers, or The Abit UL8.</title><link href="/2010/09/03/how-to-install-windows-home-server-vail-with-unsigned-sataraid-drivers-or-the-abit-ul8.html" rel="alternate" type="text/html" title="How to install Windows Home Server Vail with unsigned SATA/RAID drivers, or The Abit UL8." /><published>2010-09-03T00:00:00+00:00</published><updated>2010-09-03T00:00:00+00:00</updated><id>/2010/09/03/how-to-install-windows-home-server-vail-with-unsigned-sataraid-drivers-or-the-abit-ul8</id><content type="html" xml:base="/2010/09/03/how-to-install-windows-home-server-vail-with-unsigned-sataraid-drivers-or-the-abit-ul8.html"><![CDATA[<ol>
<li>
Boot off of install media, as usual.

</li>
<li>
Hit Shift-F10 to open a command prompt.

</li>
<li>
It should open in X:\\sources, CD into X:\\sources\\recovery.

</li>
<li>
run RecEnv.exe

</li>
<li>
Hit next on the Select your keyboard layout window, then click load
drivers.

</li>
<li>
Browse for and load your unsupported SATA drivers.

</li>
<li>
Leave the recovery window open, and continue with installation, your
unsupported hard drives should now appear.

</li>
</ol>
<p><strong>EDIT: This should also work for Windows 7 and possibly 8 (Haven’t
tried). You may need to boot with signature checking disabled.</strong></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Boot off of install media, as usual.]]></summary></entry><entry><title type="html">Azureus Causing Mac Os 10.5.6 crashes</title><link href="/2009/02/09/azureus-causing-mac-os-1056-crashes.html" rel="alternate" type="text/html" title="Azureus Causing Mac Os 10.5.6 crashes" /><published>2009-02-09T00:00:00+00:00</published><updated>2009-02-09T00:00:00+00:00</updated><id>/2009/02/09/azureus-causing-mac-os-1056-crashes</id><content type="html" xml:base="/2009/02/09/azureus-causing-mac-os-1056-crashes.html"><![CDATA[<p>After trying a bunch of stuff, I found out that Azureus was causing
kernel panics when I was connected on airport, switching to uTorrent fix
it.</p>

<p>Heres the kernel panic, for people googling this:</p>

<blockquote>
Sun Feb Â 8 20:09:21 2009

panic(cpu 0 caller 0x002232C6): “rtunref: bad refcnt 0 for
rt=0x132fe690\\n”@/SourceCache/xnu/xnu-1228.9.59/bsd/net/route.c:460

Backtrace (CPU 0), Frame : Return Address (4 potential args on stack)

0x5b467dc8 : 0x12b4f3 (0x45b13c 0x5b467dfc 0x1335e4 0x0)Â 

0x5b467e18 : 0x2232c6 (0x473df8 0x0 0x132fe690 0x1a336f)Â 

0x5b467e38 : 0x2237ba (0x132fe690 0x1 0x0 0x0)Â 

0x5b467e68 : 0x224a66 (0x132fe690 0x2 0x5b467e98 0x13b3ba4c)Â 

0x5b467e88 : 0x273cfd (0x132fe690 0xffff 0x1 0x3aa793)Â 

0x5b467eb8 : 0x24adb9 (0x13b3ba4c 0x6d76080 0xde 0x1a0420)Â 

0x5b467f18 : 0x24ccba (0x13b3bb2c 0x2 0x1 0x24eb3f)Â 

0x5b467f58 : 0x39befb (0x6d763a0 0x23ac6252 0x5b467f78 0x1a336f)Â 

0x5b467f78 : 0x13eed2 (0x0 0x0 0x0 0xbfffedc0)Â 

0x5b467fc8 : 0x1a017c (0x0 0x0 0x1a30b5 0x74ea2e8)Â 

Backtrace terminated-invalid frame pointer 0

Â 

BSD process name corresponding to current thread: kernel\_task

Â 

Mac OS version:

9G55

Â 

Kernel version:

Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008;
root:xnu-1228.9.59~1/RELEASE\_I386

System model name: MacBookPro3,1 (Mac-F4238BC8)

</blockquote>]]></content><author><name></name></author><summary type="html"><![CDATA[After trying a bunch of stuff, I found out that Azureus was causing kernel panics when I was connected on airport, switching to uTorrent fix it.]]></summary></entry></feed>