Finally we are back on the XDA Interview series! For those of you too new to XDA, you may find the previous ones in this links: Interview With XDA Developer pof, Interview with User Experience Admin svetius, Interview with XDA forum Admin mikechannon, etc.
This time we will talk with XDA Recognized Developer AdamOutler. It´s hard to find where to start when you have the pleasure to interview such a versatile Developer with so many active projects.
orb3000: Hi Adam, thanks for taking this time to talk. I will start asking how do you started to work in Unbrickable Mod?
AdamOutler: When I switched from iPhone to Android, I had a feeling of
immense freedom. I could do anything I want with an Android! So I did…
I did something and bricked my phone within about 1 hour of owning it.
I searched for ways to recover bricks and JTAG was the only option for my
device. It required soldering 8 tiny wires and purchasing a very expensive
box. I felt that was unacceptable and there should be another way to reload
firmware so I began research and was pulled into the thread Lets save some
bricks. After locating the hardware modification, I called it UnBrickable Mod because I
knew it had potential to make a device totally UnBrickable.
Cool factoid: The B in UnBrickable is always capitalized because it bypasses
Auto-Correct on Android devices.
orb3000: How Unbrickable Mod works?, can you explain us what is all about?
AdamOutler: That is a very broad question… UnBrickable Mod is a hardware
modification which enables USB upload of bootloaders. I think everyone
wants the reassurance that no matter what they flash on their device it can
be recovered. All CORTEX A8 processors have the ability to boot from USB.
Most modern devices support this and at the same time, most manufacturers
tend to lock this ability down. While UnBrickable Mod is technically a
hardware hack/exploit, it functions to increase device maintainability and
thereby increases device value. Personally, I view UnBrickable Mod as the
way devices should come from the factory.
Here’s a video which explains most of it.
(Note to readers, ignore this paragraph if you’re not a geek) While most
devices have a default failover mode to boot from USB, this is ineffective
if the device locks up on a bootloader. Each device has its own unique boot
mode. Most GalaxyS1 devices use a boot code of 0x9(OneNAND>UART>USB). By
modifying the value from 0x9 to 0x29(UART>USB>OneNAND), the device will
reverse its boot order and thereby cause the device to swap its boot mode
from the default boot first from OneNAND to booting first from UART, then
USB, then OneNAND. It’s not always the same value we’re searching for
though.. Each device has its own unique configuration and processor. A
booting code of 0x9 on a Hummingbird processor does not mean the same on any
other processor, nor is it guaranteed that the boot modes can be swapped,
also memory locations are different per processor.
For example, I’ve just finished locating the modification required on the
Exynos4120 GalaxyS2. As far as I can tell, it will not be possible to
simply swap the boot modes. On the Exynos4120, a temporary connection must
be made in order to make the device attempt to boot from an alternate source
and failover into the USB mode. I chose a switch to make this temporary
connection. See XDA-TV GalaxyS2 Unboxing for more.
orb3000: For a regular user sometimes so many tools is kind of confusing, please tell us about the supporting software like UnBrickable Resurrector, ModeDetect, and Heimdall One-Click?
AdamOutler: These tools each serve different purposes. Lets start with
Heimdall One-Click is a cross-platform, all-dependencies-included, single
executable file, firmware packaging and distribution tool. It is superior
to the Windows-only Odin3. Its purpose is to allow users on Linux, Windows
and Mac to use the exact same file to flash firmware onto their device. The
advantages of using Heimdall One-Click over Odin3:
*Utilzing a much safer flashing method
*Allowing those with Windows, Mac and Linux to flash your firmware
*Increasing user-awareness of what is being flashed
*Packing your firmware into a much easier to use One-Click
*Supporting the work of other Open-Source developers
Heimdall One-Click is based on Heimdall by Benjamin Dobell. Heimdall is
actually safer to use than Odin, and Heimdall One-Click adds 6 points of
safety to standard flashing with Odin. I’ve also created a tool to make
Heimdall One-Clicks from Heimdall Tar.GZ packages.
The UnBrickable Resurrector is the firmware/software component to
The UnBrickable Resurrector will tell you when you’ve connected a device
which has been properly modified. It also can recognize several other modes
like ADB, Media Player, Mass Storage and many others. By connecting an
UnBrickable Modded device and clicking the “Download Mode” button, you’re
activating a process of uploading customized bootloaders directly into
specific memory locations where they are executed and perform initialization
tasks designed to put your device into Download Mode or Fastboot Mode. The
Resurrector was created as a team effort by Rebellos and Myself.
I designed the high-level Java app and hardware mod while he designed the
HIBL(Hummingbird Interceptor BootLoader) and modified SBL.
ModeDetect was discontinued. It has been replaced and absorbed by the
Basically, we’ve got Heimdall One-Click which makes loading software easy
and the UnBrickable Resurrector which gets you to the point where you can
load software. The reason for having them be totally separate entities:
Not everyone needs or can use the Resurrector and not everyone needs or can
use Heimdall One-Click. Although they work together to form a total
recovery system, they are separate in that developers may not need a full
300meg firmware flash to put their device into download mode and test a
kernel, and people flashing firmware would be confused by inoperative
buttons and extra status icons.
In short, UnBrickable Resurrector supports several devices and provides
hard-brick recovery to a soft-bricked state. Heimdall One-Click provides
soft-brick recovery to an operational state.
This brings me to my work-in-progress… Why don’t we have any
cross-platform tools which work with every single Android device out there?
CASUAL (Cross-platform ADB Scripting, Unified Android Loader), like the Unbrickable resurrector, will support several devices. Since it only requires 6 commands, it is intended to be an easy-to-learn, Cross-Platform, light-weight scripting language for deploying binaries over ADB with a Graphical User Interface. If you’re a developer who wants to deploy a new root script over ADB, put out a kernel for multiple devices or install applications via adb, CASUAL will be your
application of choice. It works on Linux, Windows and Mac. A basic script can be created by simply putting all of your binaries into a zip file then typing in a few adb commands without the word “adb” and replace file
references with $ZIPFILEfilename.ext. For example:
Shell mkdir /data/tmp
push $ZIPFILEzergRush /data/tmp
push $ZIPFILEzergRush /system/bin
The end-user of a CASUAL application will not see the script. They will see
a GUI. User will simply plug in their Android Debug Bridge enabled device,
select the operation from a drop-down box, then click the big button. It
will also provide a great way to easily root an Android Virtual Device from
Linux as well. CASUAL will support every single Operating System and every
single Android Device.
Here we end the first part of the interview, stay tuned for the following two parts.
Thanks for reading.
Want something on the XDA Portal? Send us a tip! -- Join us for xda:devcon 2014!