Fixing a flooded iPhone 6 (or any other phone)

Your iPhone fell in the water and no longer works? Here’s how you might be able to fix it. My girlfriend had dropped her’s in the toilet (don’t ask how) and with a bit of patience and some chemicals I was able to get it working again. This little trick might also work with any other kind of electronics.

  1. Take your phone apart completely. iFixit has some very well made guides for most iPhone models. (If you don’t have the proper screwdrivers, spudgers, suction cups and things, Ebay is a good place to get them, they only cost a couple of dollars.)
  2. Take the logic board out.
  3. Look for water deposits and corrosion (bluish/greenish spots) on the logic board and everywhere inside the phone.
  4. Put that logic board and every other part that’s been exposed to water in a plastic container.
  5. Pour a generous amount of isopropyl alcohol (the higher the concentration the best) in the container so that the parts are completely submerged.
  6. Let them sit there for a couple of days, intermittently shaking the container to swoosh the alcohol around.
  7. Get a soft bristled toothbrush, dunk it in the alcohol and gently brush off all the corrosion that you can see. Pay extra attention to the connectors and the logic board, inspect them meticulously and clean them thoroughly.
  8. Let the parts dry for two or more days. (You can put the alcohol back in its bottle.)
  9. Put the phone back together, working in reverse from the guide you used originally to take it apart.
  10. Plug it in and hope for the best.

Hope this helps… If you have any other suggestions and if it worked with your model of phone or electronics, I’d appreciate it if you leave a comment.

Moving Linux on a windows drive for dual booting

README! There are many use cases for dual booting and guides for achieving it, this one concerns moving an existing Linux to a drive on which Windows is already installed and dual booting them. In other words, you will be combining existing Windows and Linux systems to coexist on the same hard drive.

I’ve been using the same hard drive for a while and transporting it from laptop to laptop whenever one would fail me (you can do that with linux). Now, after 8 years, I was fearing it was the actual hard drive that would break next so this time, I had to move my actual operating system to another physical disk.

Wanting to be able to dual boot into windows as well, I was stuck in a scenario for which there was not much help on the web. Here’s what I did:

  1. Resize your Windows partition using the disk management tool to make room for Linux and its swap. The new Linux partition must be larger that the one you are moving from.
  2. Reboot to a Linux live CD or GParted and create a bootable Linux and a swap partition (they must be primary) after the Windows partition.
  3. Clone you existing Linux OS partition from the old hard drive to the new.
    1. Plug in your old drive (external SATA, external disk case, extra hard-drive bay, etc.) but leave it unmounted.
    2. dd if=/dev/sdXY of=/dev/sdWZ bs=1M

      where XY is the drive letter and partition of the Linux OS you are moving from and WZ those of the partition you are moving to.

    3. Wait for a while, depending on the size of the partition, this could take a bit because you are cloning every single byte from one partition to the other. In my case, it tool a good solid two hours and half.
  4. Unmount and disconnect your old Linux OS hard drive. In case something goes wrong, simply popping it back in your computer will restore your setup just the way it was before.
  5. Mount your new Linux partition.
  6. From within the Live CD, restore the GRUB2 bootloader by executing
    grub2-install --root-directory /mountPoint /dev/sdW

    where mountPoint is where you new Linux partition is mounted and sdW is the drive where it resides.

  7. Since the partition’s GUIDs have changed you need to update the /etc/fstab file on your Linux with the new ones. Any file editor will do. Look up the new GUIDs for your new OS and swap partitions by running
    ls -al /dev/disk/by-uuid/
  8. Remove the live CD and restart the computer.  From within GRUB2’s boot menu, you should only see your Linux and not Windows, that’s normal. Boot your Linux OS.
  9. Run
    grub-mkconfig -o /boot/grub2/grub.cfg

    GRUB2 will scan your hard drive, find the Windows install and create a new boot configuration file. Now, when you reboot your machine, you will see Windows within the boot menu menu entries.

  10. Finally, since the size of the underlying partition holding your Linux installation has changed, the size of the file system has to be updated as well:
    resize2fs /dev/sdW

Done! Moving operating systems around and getting them to cohabit alongside each other is tricky and far from being straightforward so I hope this guide worked for you. You will most likely have to adapt it to your own situation and if you feel something you did could benefit others, please comment.

How to program a new Toyota transponder key

In need of an extra key for your Toyota? Avoid the dealer, they charge an arm and a leg for a simple procedure you can do yourself for free. Searching the web turned up a couple of techniques, but the one that worked for me was found in a youtube comment by user Nazareth434.

My car is a Toyota Matrix 2005 but apparently this procedure is valid for several Toyota models and years. If it did or did not work for you please let me know in the comments. And if nothing including this procedure has worked for you, don’t despair, at least your copy can open doors. Attach the key to a concealed spot under you car and save it for the “oops I’ve locked myself out”situation.

Procedure

First, you need a blank transponder key for your model and year. You can get one for 10$ or so through eBay or amazon. Then, have the key cut by your local hardware store and make sure it fits you ignition lock: you should be able to turn it all the way to the start position and hear the starter going without the engine turning on. With the master key (the black key, not the valet key, which is grey) and the copy in hand, install yourself in the driver’s seat and follow the procedure carefully. It took me about 30 minutes and many tries to get the steps right as there is timing involved. Persevere and and it should work.

  1. Insert the MASTER key in the ignition 5 times, leaving it IN the ignition on the 5th time. Do not turn the key. Don’t rush that step, do it slowly.
  2. Open and close the driver’s door 6 times, leaving the door closed on the 6th time.
  3. Remove the master key from the ignition. The security light should now be solid red to indicate programming mode. If it’s not, repeat from the beginning.
  4. Insert the new key in the ignition but don’t turn it. Do that step quickly as the computer only stays in this mode for a couple of seconds.
  5. The security light will resume blinking. After 60 seconds (maybe more, be patient), the light will stop blinking and turn off.
  6. Remove the new key, insert the master and turn the engine on and then off.
  7. Done! Test your new key. When you insert it, the security light should stop blinking and the car should start.

The theory

Its wrongly called programming a key but in fact, no key gets programmed by itself, its the car that gets programmed. Keys have an RFID emitter in them which outputs a unique identifier when prompted by the car’s anti-theft device’s reader upon insertion in the ignition. If that identifier is not in the car’s computer valid key identifier list, the car will not start.

What the procedure above does is putting the car’s anti-theft system in programming mode and then telling it that it should include the new key’s id in its list of permitted keys. This is done by doing a set of special steps with the master key in. If you possess the master key, chances are you are the master, but should you loose all you keys, there will be no way of starting the car again other than replacing the anti-theft computer; something the dealer will charge a lot for.

Fixing AMD (ati) radeon display issues on Fedora

Note (09/01/17): also worked on a recent upgrade from 23 to 25.

I had put off system upgrades for so long that I found myself having to go from Fedora 20 to 23. It took a while but everything was going smoothly until I hit Fedora 23 on. There, after the mandatory reboot, hooking up my secondary monitor would freeze the display and screen repainting on some programs (like Eclipse) had become problematically slow and CPU demanding. This being Linux, I scoured the web on a quest to find some clues on what was not configured correctly but nothing came up. I’m running an AMD A6-3420M APU and while AMD provides driver for that chip, they are according to reports very finicky and a pile of trouble to get running.

I resorted to simply downgrading the driver. It was working correctly in the past, so I could see no obvious reason an older version would not do it this time.

First find the version of the driver currently installed:

dnf info xorg-x11-drv-ati

Which should spit out something along the lines of:

Installed Packages
Name        : xorg-x11-drv-ati
Arch        : i686
Epoch       : 0
Version     : 7.6.0
Release     : 0.4.20150729git5510cd6.fc23
Size        : 151 k
Repo        : fedora
Summary     : Xorg X11 ati video driver
URL         : http://www.x.org
License     : MIT
Description : X.Org X11 ati video driver.

So the faulty driver is version 7.6.0. Now, run:

sudo dnf --showduplicates --allowerasing --releasever=24 downgrade xorg-x11-drv-ati

Here, we’re asking dnf to go look in a previous release of Fedora for an earlier version of the driver. If the problems you are experiencing appeared with a recent update, you could avoid the –releasever argument altogether to just revert back to the previous version.

If the downgrade does not work, you rerun the command to roll back the driver even further in the past, but if after a couple times you haven’t had success, the issue probably lies with another package so run a dnf update to and take your investigation elsewhere, maybe the kernel, wayland, X, the window composer or gnome-shell.

When you update your system in the future, you’ll have to run:

sudo dnf --exclude=xorg-x11-drv-ati update

Otherwise, dnf will reinstall the broken later version of the package. This command will also give you packages with broken dependencies. That’s normal, those are packages that share dependencies with the one you have downgraded and for all I know could actually have been the ones causing you trouble. Just let them be.

Make sure you check back from time to time if another version of the offending package has been released by issuing a simple dnf update and checking the version now available.

How to download a CBC radio show episode no longer available as a podcast

Sadly, CBC (Canadian Broadcasting Corporation) has a policy to keep podcasts available for download only 3 months for daily shows and 6 months for weekly shows with some of them being available for an even shorter time. Luckily, most shows can still be streamed from the CBC radio website using a flash/web player but are still no longer available for direct download. That’s convenient if you’re in front of your computer (which is seldom the case when listening to radio), but not that practical if you want to take an old favorite on a run.

Most of what we do on our computers is just data copying and playback, always in that order. So if it’s playing in your computer speakers, its coming from a stream, and if it’s coming from a stream, it can be copied as file. There are tons of software and websites that will let you do just that, but most of them are geared towards more popular streaming sites of the likes of YouTube and such so I had to resort to another technique for the CBC’s website. The non-trivial part here is to find the URL from which the data is coming from but modern web browsers and their built-in debugging facility have made this an easy task. Once you have the URL, you’re free to download the wanted file at will. This process assumes you’re using Chrome, but it works just as well with Firefox.

So let’s say I want to download this past episode of the show Ideas. There is a player on the page, but no download link.

  1. Bring up the page in Chrome but don’t start streaming yet.
  2. Left-click anywhere on the page and click on “Inspect element“, this will bring up the Chrome debugger.
  3. Within the debugger, switch over to the “Network” tab.
  4. On the episode’s page, start steaming the episode by clicking the play button, you’ll see a bunch of things happening in the debugger window.
  5. Click on the “type” column to sort the data elements by type and find the audio/mpeg (or media) one, that’s the file you’re streaming (see screenshot below). Mine’s name is ideas_20130307_53465_uploaded.mp3.
  6. Left-click on the name and select “Copy link address” or “Open in new tab” and that’s it, from there you can download the episode as a file. The link for my episode is http://thumbnails.cbc.ca/maven_legacy/thumbnails/14/881/ideas_20130307_53465_uploaded.mp3. When opening up the link in your browser, it might bring up its own player but if you click around, you’ll find an option to download the file instead of playing it.
Chrome debugger view with the stream data row highlighted. Left-clicking on the row will bring up a link to the stream itself and allow its downloading.

Chrome debugger view with the stream data row highlighted. Left-clicking on the row will bring up a link to the stream itself and allow its downloading.