The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "IDroid"
m |
|||
(49 intermediate revisions by 20 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{lowercase}} |
||
− | [[Image:Openiboot.png|thumb|right|300px]] |
||
+ | [[File:Openiboot.png|thumb|right|200px|Device running the OpeniBoot console.]] |
||
− | [http://iphonelinux.org 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 "[http://en.wikipedia.org/wiki/IPhone_OS iPhone OS]". |
||
+ | '''iDroid''' is a project with goals of porting Linux and Android to [[List of iPhones|iPhone]], [[List of iPod touches|iPod touch]] and [[List of iPads|iPad]] and use different OSes as alternatives to standard [[iOS]]. |
||
− | + | 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 === |
||
− | There are three steps in the iPhonelinux roadmap : OpeniBoot, linux kernel and long term (GUI, phone...) |
||
+ | The goals of OpeniBoot are: |
||
+ | * to run low-level code |
||
+ | * to have low and critical drivers ([[NAND]] and [[NOR]] driver, [[NOR_(NVRAM)|NVRAM]]...). |
||
+ | * to have a debugger and development environment (chainloading, upgrading itself and USB mass storage). |
||
− | == |
+ | === Linux === |
+ | A Linux Bootloader, a working Linux kernel (cross-compiler), porting drivers, run Wi-Fi and command line through SSH. |
||
− | The Goals of OpeniBoot is to run low-level code, to have low and critical drivers (nand and nor driver, NVRAM...), debugger and development environment (chainloading, upgrading itself and USB mass storage). |
||
− | == |
+ | === Android === |
+ | On {{date|2010|04|21}}, an Android distribution based on iPhoneLinux called iDroid was released. |
||
− | A linux Bootloader, a working linux kernel (just a question of cross-compiler), porting drivers, run wifi and command line thru SSH. |
||
+ | * Announcement on the linuxoniphone blog: [http://linuxoniphone.blogspot.com/2010/04/ive-been-working-on-this-quietly-in.html iDroid initial release]. |
||
− | == Long-Term Plans == |
||
− | Multi-touch driver, Baseband driver, port X server and create an SDK. |
||
− | Then have a viable alternative of the iPhone OS. |
||
− | == |
+ | == See Also == |
+ | * [[Android]] |
||
+ | [[Category:Android on iPhone]] |
||
− | 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 == |
||
− | |||
− | 1. Put your iPhone in [[Recovery Mode]]. |
||
− | |||
− | 2. sudo ./loadibec openiboot-2g.img3, or -3g, -ipod, depending on your platform. |
||
− | |||
− | 3. sudo ./oibc |
||
− | |||
− | 4. nor_read 0x09000000 0x0 1048576 |
||
− | |||
− | 5. ~norbackup.dump:1048576. This will create a file called norbackup.dump in your current directory. GUARD IT WITH YOUR LIFE. |
||
− | |||
− | 6. install |
||
− | |||
− | 7. After 'install' has finished, type in: reboot. |
||
− | |||
− | 8. You ought to see the openiboot menu. |
||
− | |||
− | == 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 |
||
− | |||
− | |||
− | |||
− | === 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. :) |
Latest revision as of 13:08, 17 September 2021
iDroid is a project with goals of porting Linux and Android to iPhone, iPod touch and iPad and use different OSes as alternatives to standard iOS.
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.
Contents
OpeniBoot
The goals of OpeniBoot are:
- to run low-level code
- to have low and critical drivers (NAND and NOR driver, NVRAM...).
- to have a debugger and development environment (chainloading, upgrading itself and USB mass storage).
Linux
A Linux Bootloader, a working Linux kernel (cross-compiler), porting drivers, run Wi-Fi and command line through SSH.
Android
On 21 April 2010, an Android distribution based on iPhoneLinux called iDroid was released.
- Announcement on the linuxoniphone blog: iDroid initial release.