Difference between revisions of "IDroid"

From The iPhone Wiki
Jump to: navigation, search
(Installation: Grammar)
(iPhonelinux --> iDroid, Planetbeing no longer works this and everything iPhonelinux is now iDroid)
Line 1: Line 1:
{{DISPLAYTITLE:iPhoneLinux}}
+
{{DISPLAYTITLE:iDroid-Project}}
 
[[Image:Openiboot.png|thumb|right|200px|Device running the OpeniBoot console.]]
 
[[Image:Openiboot.png|thumb|right|200px|Device running the OpeniBoot console.]]
iPhonelinux is a project which goals are to port linux on the iPhone and make a Free (free software) OS alternative to the Apple proprietary "{{wp|iOS (Apple)|iOS}}".
+
iDroid is a project which goals are to port linux and Android to the iPhone/iPod/iPad and make a Free (free software) OS alternative to the Apple proprietary "{{wp|iOS (Apple)|iOS}}".
   
iPhonelinux is not actually a hack/exploit neither an unlock, but it is based on the [[Pwnage]] exploit.
+
iDroid is not actually a hack/exploit neither an unlock, but it is based on BootROM exploits which allowing the running of unsigned code at low level.
 
== Components ==
 
 
There are three steps in the iPhonelinux roadmap : OpeniBoot, linux kernel and long term (GUI, phone...)
 
   
 
=== OpeniBoot ===
 
=== OpeniBoot ===
Line 13: Line 9:
 
The goals of OpeniBoot are
 
The goals of OpeniBoot are
 
* to run low-level code,
 
* to run low-level code,
* to have low and critical drivers (nand and nor driver, NVRAM...), and
+
* to have low and critical drivers (NAND and NOR driver, NVRAM...), and
 
* to have a debugger and development environment (chainloading, upgrading itself and USB mass storage).
 
* to have a debugger and development environment (chainloading, upgrading itself and USB mass storage).
   
 
=== Linux ===
 
=== Linux ===
A linux Bootloader, a working linux kernel (just a question of cross-compiler), porting drivers, run wifi and command line thru SSH.
+
A linux Bootloader, a working linux kernel (just a question of cross-compiler), porting drivers, run wifi and command line through SSH.
   
=== Long-Term Plans ===
+
=== Android ===
Multi-touch driver, Baseband driver, port X server and create an SDK.
 
Then have a viable alternative of the iPhone OS.
 
 
== Android (iDroid) ==
 
   
 
On April 21, 2010, an Android distribution based on iPhoneLinux called iDroid was released.
 
On April 21, 2010, an Android distribution based on iPhoneLinux called iDroid was released.
Line 33: Line 25:
   
 
To see answers to frequently-asked questions about iPhoneLinux and iDroid, go to the [http://www.idroidproject.org/wiki/Frequently_Asked_Questions iPhoneLinux FAQ] page.
 
To see answers to frequently-asked questions about iPhoneLinux and iDroid, go to the [http://www.idroidproject.org/wiki/Frequently_Asked_Questions iPhoneLinux FAQ] page.
 
== Binaries ==
 
 
These are utility binaries precompiled on Ubuntu 8.10. They require:
 
 
- libpthread
 
- libncurses
 
- libusb
 
- libreadline
 
 
You may elect to build them from source by pulling from
 
iphonelinux/openiboot's git repository.
 
 
== Disclaimer ==
 
 
BE WARNED THAT THESE STEPS ARE NOT INTENDED FOR NOVICES. YOU ATTEMPT THIS AT
 
YOUR OWN RISK. AT THIS TIME, WE CANNOT AFFORD THE EFFORT REQUIRED TO GIVE
 
SUPPORT TO NOVICES AND/OR RESCUE THEM FROM THEIR OWN ACTIONS.
 
 
Although unlikely, if the installation goes wrong, you may have to perform a
 
DFU restore on your iPhone. If you do not know how to do that, you should not
 
follow these steps. You should also know how to use iRecovery (or similar) and
 
the fsboot command to "kick an iPhone out of recovery mode". If you do not
 
know how to do that, you should not follow these steps.
 
 
The installation of openiboot itself is safe, but openiboot has the facility
 
to erase device-specific information from your NOR flash. If you did not make
 
a backup, and execute the commands necessary to make openiboot erase that
 
information, it is gone forever and your device may never boot properly again.
 
 
The instructions below will show you how to make such a backup before any
 
changes are made.
 
 
== Installing OpeniBoot ==
 
 
=== Prerequisites ===
 
* iPhone (first gen).
 
* Firmware 2.x+ to have support IMG3 (the iPhonelinux-demo provides IMG3 files, not IMG2 files).
 
* Being Pwned : Pwnage comes with jailbreak on 2.x+, so If you used Pwnage Tool, QuickPwn or xPwn, you are good.
 
* Required libraries (install as a package for Uuntu).:
 
** libpthread
 
** libncurses
 
** libusb
 
** libreadline
 
 
=== Installation ===
 
# Put your iPhone in [[Recovery Mode]].
 
# sudo ./loadibec openiboot-2g.img3, or -3g, -ipod, depending on your platform.
 
# sudo ./oibc
 
# nor_read 0x09000000 0x0 1048576
 
# ~norbackup.dump:1048576. This will create a file called norbackup.dump in your current directory. GUARD IT WITH YOUR LIFE.
 
# install
 
# After 'install' has finished, type in: reboot.
 
# You should see the Open iBoot menu.
 
 
===See===
 
* [[QuickOIB]]
 
 
== Booting Linux ==
 
 
 
Use the Hold button to navigate the menu. Push the Home button
 
when openiboot client is selected.
 
sudo ./oibc
 
!zImage
 
kernel
 
!rootfs.arm.ext2.gz
 
ramdisk 3588
 
boot "console=tty console=ttyUSB root=/dev/ram0 rw"
 
sudo ./linux
 
 
You should now get a login prompt. Nothing that's happening will show up on
 
the LCD automatically, but you can redirect it to the display with the
 
following command:
 
 
sh 2>&1 > /dev/tty0
 
 
Enjoy!
 
 
== iPhone Linux Resources ==
 
 
- Framebuffer driver
 
- Serial driver
 
- Serial over USB driver
 
- Interrupts, MMU, clock, etc.
 
 
 
=== OpeniBoot Resources ===
 
 
- Read-only support for the NAND
 
 
 
=== OpeniBoot Missing Resources ===
 
 
- Write support for the NAND
 
- Wireless networking
 
- Touchscreen
 
- Sound
 
- Accelerometer
 
- Baseband support
 
 
===QuickOIB===
 
 
[[QuickOIB]] is a tool that allows the user to temporarily install OpeniBoot in a device.
 
It was developed by pH and work perfectly with Mac OS X and Ubuntu 8.10
 
 
=== Support ===
 
 
The current userland we're using, in the interest of expedience, is a Busybox installation created with buildroot, but glibc works fine as well, and we're going to build a more permanent userland solution.
 
 
A demonstration video can be seen here: http://www.vimeo.com/2373142
 
 
Download here: http://localhostr.com/files/b00133/iphonelinux-demo.tar.gz
 
 
Project leader: '''planetbeing'''
 
 
Contributors: '''CPICH, cmw, poorlad, ius, saurik'''
 
 
If you're experienced with '''hacking/porting Linux''' and especially if you're experienced with porting '''Android''', I'd definitely like to hear from you. Come chill in the ''#iphonelinux'' channel on ''irc.osx86.hu'' . If you're not experienced, and still want to help, you can digg/slashdot this posting to heaven so our little project gets more visibility. Thanks. :)
 
 
[[category:iPhoneLinux]]
 
[[category:Android on iPhone]]
 

Revision as of 20:16, 11 October 2011

Device running the OpeniBoot console.

iDroid is a project which goals are to port linux and Android to the iPhone/iPod/iPad and make a Free (free software) OS alternative to the Apple proprietary "Template:Wp".

iDroid is not actually a hack/exploit neither an unlock, but it is based on BootROM exploits which allowing the running of unsigned code at low level.

OpeniBoot

The goals of OpeniBoot are

  • to run low-level code,
  • to have low and critical drivers (NAND and NOR driver, NVRAM...), and
  • to have a debugger and development environment (chainloading, upgrading itself and USB mass storage).

Linux

A linux Bootloader, a working linux kernel (just a question of cross-compiler), porting drivers, run wifi and command line through SSH.

Android

On April 21, 2010, an Android distribution based on iPhoneLinux called iDroid was released.

Frequently Asked Questions

To see answers to frequently-asked questions about iPhoneLinux and iDroid, go to the iPhoneLinux FAQ page.