|
The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "IDroid"
m |
|||
| (31 intermediate revisions by 12 users not shown) | |||
| Line 1: | Line 1: | ||
| + | {{lowercase}} |
||
| − | {{DISPLAYTITLE:iPhoneLinux}} |
||
| − | [[ |
+ | [[File:Openiboot.png|thumb|right|200px|Device running the OpeniBoot console.]] |
| + | '''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]]. |
||
| − | [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 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 == |
||
| − | |||
| − | === Prerequisites === |
||
| − | * Having an iPhone (first gen), iPhone 3G or an iPod 1G (the 2G iPod won't work).<br /> |
||
| − | * Being on 2.x+ to have support IMG3 (the iPhonelinux-demo provides IMG3 files, not IMG2 files).<br /> |
||
| − | * 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 === |
||
| − | |||
| − | 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. |
||
| − | |||
| − | ===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:Android on iPhone]] |
||
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.