Wednesday, August 7, 2013

Boot Multiple OSes Using Your Android Device and DriveDroid

DriveDroid is a neat app that allows you to boot ISO and IMG files that are stored on your Android device, just like you are booting from a USB drive. You can download a lot of images from within the app. You can also create blank images, but I haven't used this feature.

Your device must be rooted to use this app, so if it's not then this app isn't for you.

The process is quite simple. Start DriveDroid and press the "+" button and select "Download image" to get a list of available images. Select a distribution and then select the file you want. For the first time, I suggest trying Slitaz, since it is only about 35MB. Once it is downloaded, it will show up on DriveDroid's main screen.



To boot from an image, select it in DriveDroid, and select the host mode (e.g. Writable USB, etc). Then, connect the Android device to a PC using a USB cable and boot the PC. The PC will boot the selected image. If the image doesn't boot, check the PC's BIOS settings and make sure "Boot from USB" is set as the first boot device.

To stop hosting, just tap the DriveDroid icon in the Android notification area.


One requirement for the ISO images is that they must be in hybrid format. To check an ISO, type
fdisk -l file.iso
If no partition table is found, the ISO is not in hybrid format. One of my favorite tools, SystemRescueCd, isn't in this format. To make it work, all I had to do was download the ISO and run
isohybrid file.iso
This changes the file to the correct format and then it works with DriveDroid just fine.

DriveDroid makes it easy to try out new distributions. And with the right tools, your Android device can be an invaluable recovery tool.

Thursday, February 14, 2013

ADB Shows Device Offline after Android 4.2.2 Update

If you have upgraded to Android 4.2.2 and you can no longer connect to your device with ADB, the problem may be an outdated ADB executable on your PC. If ADB shows your device as "Offline", update your Android SDK to get the latest ADB and see if it helps. I ran into this problem with my Nexus 7. I know version 1.0.31 works. You can check the version with "adb version".

Android 4.2.2 introduces a "whitelist" for ADB connections. When you plug the device in to a PC, a screen opens on the device that gives you the option to allow or deny the ADB connection. If you have an old version of ADB, this screen doesn't appear and the device shows as "Offline" on the PC.

If ADB isn't the issue, then you can try the following:

  • Unplug the device and run "adb kill-server" on the PC and plug it back in. Or,
  • Reboot the Android device. Or,
  • Plug the device into a different USB port
Hope this helps.


Friday, January 11, 2013

My Nexus 7 (2012) and its Headphone Problem

I bought a Nexus 7 tablet a few weeks ago as my first tablet. I got the 32GB wifi-only model. So far I have been impressed. The speed, display, and battery life are great.

I did run into one problem though. The headphone jack didn't seem to work properly. When I inserted my headphones, I would either get sound out of the tablet speaker or only one of my headphone speakers. And it would switch between these two, kinda like a bad connection. I tried two different sets of headphones and both behaved the same. I was disappointed in my shiny new tablet.

Thankfully, the solution (for me, at least) was simple. It turns out that the headphone jack is a tight fit and I just had to push the headphones in a little harder until I heard it click. Problem solved!

I have heard of a lot of other people with this problem that were returning their Nexus 7s. Hopefully this will help someone and save them from having to return their Nexus 7.


Thursday, October 18, 2012

Two ICS ROMS for the LG Vortex (and other Optimus One phones)

I came across the Quattrimus site which has both CM9 and AOKP Ice Cream Sandwich ROMs for the LG Vortex and other LG Optimus One phones. The ROMs are in the beta stage so there are a few issues. Most notably, the sensors don't work (e.g. screen does not auto rotate) and there is a low mic/speakerphone issue. Also, international data roaming must be enabled for data to work. These seem to be the same issues that affected the CM7 ROM. More information can be found in this thread.

I loaded both ROMs on my Vortex and used them for a couple of days. While I only tested for a short time, the performance and functionality of both ROMs was very good. If the sensor and mic issues get resolved, I will definitely keep one of these installed.

The developer is also working on a Jelly Bean ROM. I'm keeping my fingers crossed,

Saturday, April 21, 2012

The Fabulous Arduino

If you like to tinker with electronics, you should definitely check out the Arduino website. It is an open source electronic prototyping system that is very easy to use. It is based on the Atmel ATmega microcontrollers.

I have been looking for something like this for a long time. I chose the Arduino Uno because of its low price and ease of programming (and favorable reviews). I picked up an Arduino Uno starter kit from Amazon for about the same price as just the Uno board at Radioshack. The starter kit includes the Arduino Uno R3 board, a USB cable, a small breadboard for prototyping, a tray for holding the Uno and the breadboard, and some hookup wires.

You can also get Arduino "shields", which are purpose-specific boards that plug into the Arduino. Some shield examples are for ethernet, wireless, and motor control. I haven't tried any of the shields yet.

The Arduino software is java-based and therefore cross-platform. It works well on my Linux machine. Just load up your program and click the Upload button. The program will automatically compile and upload to the Arduino, which will then run it.

Finally, here is my Arduino driving an LCD module. It only took a few minutes to modify an example program to get it to display what I wanted.


I encourage anyone looking for this sort of thing to give the Arduino a try. Happy tinkering!

Sunday, February 5, 2012

Finally! CyanogenMod on the LG Vortex!

After waiting patiently for many months, I finally came across a CyanogenMod port for my LG Vortex. Over at Android Forums, bobZhome has released a CyanogenMod 7 ROM for the Vortex. There are some issues with the 12/2 release (the latest at the time I wrote this) so I recommend following the instructions in this post and installing the 11/9 release along with the listed fixes. There are a couple of things to note about the 11/9 release. First, the screen animations must be disabled in the CyanogenMod settings. Otherwise the unlock screen will be black. Also, you must enable international roaming to get data to work. So far it hasn't caused any extra charges to show up on my bill.



I have been running it for several weeks now and I am very happy with it. I am using the smartass governor, bfq scheduler, and have it overclocked to 768MHz. The kernel can be overclocked to 864MHz but my phone can't handle it. Note that using the GINM kernel requires a 3rd party app to set the governor, scheduler, and clock speed, such as Voltage Control or SetCPU.



Everything is smooth and fast and battery life is great. I have seen a couple of seemingly random reboots, but I suspect overclocking is partly responsible.

So head on over to Android Forums and grab this fantastic ROM. Of course, do a nandroid backup first and don't blame me if you brick your phone.

Friday, December 16, 2011

Some Interesting Android build.prop Parameters

The /system/build.prop file on Android devices contains parameters that control various functions and information on the device. Here are some that are of interest. Note: to make changes to this file, your phone must be rooted.

Increase the VM heap size, probably not a good idea on low end phones with limited memory:
dalvik.vm.heapsize=48m

Draw the UI using the GPU instead of the CPU
debug.sf.hw=1

Decrease dial out delay
ro.telephony.call_ring.delay=0

Increase scrolling responsiveness
windowsmgr.max_events_per_sec=180

Increase scan time for wifi APs (saves battery)
wifi.supplicant_scan_interval=120

Save battery
pm.sleep_mode=1
ro.ril.disable.power.collapse=0

Disable debugging icon on statusbar
persist.adb.notify=0

Disable boot animation for faster boot
debug.sf.nobootanimation=1

Force launcher into memory
ro.HOME_APP_ADJ=1

Prefix "3g" on lock screen
ro.ril.enable.3g.prefix=1

Some of these didn't work on my LG Vortex or had no noticeable effect. Specifically,
dalvik.vm.heapsize=48m (I have limited RAM so I didn't try it)
ro.telephony.call_ring.delay=0 (I had no need to try this one either)
ro.ril.enable.3g.prefix=1


If the parameters are not in the build.prop file, just add them. You must reboot the device for the changes to take effect.