66% or better

Android+Arduino – Face Following RC Car

androidRCcar_01_14

To some of us, hacking an RC Car to simply follow a black line or avoid obstacles is too easy, and we’re sure [Shazin] would agree with that, since he created an RC Car that follows your face!

The first step to this project was to take control of the RC Car, but instead of hijacking the transmitter, [Shazin] decided to control the car directly. This isn’t any high-end RC Car though, so forget about PWM control. Instead, a single IC (RX-2) was found to handle both the RF Receiver and H-Bridges. After a bit of probing, the 4 control lines (forward/back and left/right) were identified and connected to an Arduino.

[Shazin] paired the Arduino with a USB Host Shield and connected it up with his Android phone through the ADB (Android Debug Bridge). He then made some modifications to the OpenCV Android Face Detection app to send commands to the Arduino based on ‘where’ the Face is detected; if the face is in the right half of the screen, turn right, if not, turn left and go forward.

This is a really interesting project with a lot of potential; we’re just hoping [Shazin] doesn’t have any evil plans for this device like strapping it to a Tank Drone that locks on to targets!

[Read more...]

Getting a Shell on any Android Device

USB

If you’re an Evil Customs Agent or other nefarious Three Letter Agency Person, you’re probably very interesting in getting data off people’s phones. Even if the screen is locked, there’s a way around this problem: just use the Android Debug Bridge (ADB), a handy way to get a shell on any Android device with just a USB cable. The ADB can be turned off, though, so what is the Stasi to do if they can’t access your phone over ADB? [Michael Ossmann] and [Kyle Osborn] have the answer that involves a little-known property of USB devices.

USB mini and micro plugs have five pins – power, ground, D+, D-, and an oft-overlooked ID pin. With a particular resistance between this ID pin and ground, the USB multiplexor inside your phone can allow anyone with the proper hardware to access the state of the charger, get an audio signal, mess around with the MP3s on your device, or even get a shell.

To test their theory, [Michael] and [Kyle] rigged up a simple USB plug to UART adapter (seen above) that included a specific value of resistor to enable a shell on their test phone. Amazingly, it worked and the thought of having a secure phone was never had again.

The guys went farther with some proprietary Samsung hardware that could, if they had the service manual, unlock any samsung phone made in the last 15 years. They’re working on building a device that will automagically get a shell on any phone and have built some rather interesting hardware. If you’re interested in helping them out with their project, they have a project site up with all the information to get up to speed on this very ingenious hack.

[Read more...]

How to used an Android device with a shattered screen

android-with-shattered-screen

This screen is not just cracked, it’s devastated. We can all agree that you’re not going to be carrying this around with you anymore, but it might still be useful in other endeavors. [Mr Westie] wanted to use it for the camera which is undamaged. The issue is how do you control an Android device with a broken screen?

He knew there are apps out there that let you control your device remotely. But these still depend on you being able to install and launch the program. He found he could get the image from the screen on his computer using a package called Screencast. It runs on your computer and doesn’t need to be installed on the phone, but it will require a rooted phone and the user must click to authorize root access. He got around that hangup by pushing keypress commands to the phone via ADB. The only problem left is if debugging mode is not enable.

Common Linux tools on Android without root by installing BusyBox

install-busybox-on-unrooted-android

[Adam Outler] shows us how to expand the Linux tools available on Android without rooting the device. He does this by installing BusyBox. The binary is copied to the device using the Android Developer Bridge. He then opens an ADB shell, adds execution permissions to the binary, and runs it. BusyBox calls itself the Swiss Army Knife of Embedded Linux. It provides a set of very common tools which you’ll find useful in your tinkering. The one that [Adam] shows off in his video is the vi editor, but the basics that make a shell work are all there like: ls, mkdir, grep, dmesg, mount… you get the point.

So what are you going to do with your unrooted device now that you have these commands at your disposal? That’s really for you to figure out. [Adam] continues his demonstration by installing a package that does require root access. It’s BotBrew Basil, which adds apt-get and a few more complex packages. He then uses vi to write a C++ Hello World program, then compiles it and runs it. So if you’re looking to do some development on your phone this is one way.

[Read more...]

Android debug bridge released for the Raspi

Over on the XDA developers forums, something really cool is happening. Android hacker extraordinaire [AdamOutler] has managed to port the Android Debug Bridge to the Raspberry Pi.

The Android Debug bridge allows hardware tinkerers full access to their Android device. This feature has been used to build everything from telepresence robots to connecting a MIDI keyboard to a phone. With this port of the Android Debug Bridge, anyone can take advantage of the existing hacks and hardware written around the ADB to build something completely new.

Of course, the port of the Android Debug Bridge is only useful if your Raspi is running Android. Current Android builds for the Raspberry Pi are janky at best, but the current rate of progress does look encouraging. Hopefully with the most useful Android tool ported to everyone’s favorite credit-card sized computer, the progress of the Raspi/Android builds will pick up their pace.

IOIO now supports Android Open Accessory

After the announcement of the Android Open Accessory ADK, [Ytai] decided he should get the the ADK running on the IOIO Android breakout board.

The first batch of Android ADK boards sold for about $400. While that price has come down considerably, the IOIO is still cheaper and smaller. [Ytai] put the source and all the technical info on his wiki.

Interestingly, this beta build is a little more capable than the Google offering. The IOIO supports the Android Debug Bridge, so it’s able to work with any Android device made since the beginning of time. The IOIO will try to communicate with the device using the Open Accessory standard because of the much better throughput and latency, but will seamlessly fall back to ADB if the device doesn’t support Open Accessory. Open Accessory boards are only comparable with devices running Android 2.3.4 and higher, so it looks like we’ve got a standard breakout board for the $99 Android tablets that fly off the shelves during Christmas.

[Ytai] has gotten a few of his projects on Hack a Day, like his PICMAN prototyping setup and his awesome 2 foot POV globe, so we’re happy to see this very skilled builder finally get his Hack a Day hat trick and enters the ranks of giants like [Sprite_tm]. If you’ve got a great build, send it in and you might be able to join the pantheon of great builders.

Propeller-Android communications using debug mode

Here’s a new way to connect an Android phone and a Propeller microcontroller. It’s called the PropBridge and uses a very simple circuit with a voltage regulator, a couple of transistors, and a few resistors. The trick to this method lies in creative use of software features that already exist on Android hardware, the Android Debug Bridge (ADB). The ADB was added with development in mind, but since it provides low-level control of certain parts of these devices it was just waiting to be incorporated into a hack.

The Propeller itself uses firmware to make Android think it is one of two different externally connected hardware devices. It can act like a PC running the ADB client or it can mimic a TCP connection. There’s still plenty of room on the uC to add your own firmware, and the majority of the I/O pins are unneeded for the basic connection. Check out the video after the break for a quick overview of the system.

If you need a little help with Android programming before you’re able to use this in your own projects, check out our Android development series.

[Read more...]