早上本站报道了:终于实现 iPhone首次成功运行Android系统的新闻,经过一番努力后,及时为大家放松了教程!话不多说,赶紧看吧!
android及Open iBoot安装镜像下载地址
安装方法:
此系统取名为iDroid
由说明讲述了怎样在iPhone 2G上由源代码编译安装Android系统,目前尚有非常多的BUG,请反馈到#iphonelinux频道,IRC服务器irc.osx86.hu.
压缩包内包括的安装双系统的必须文件:
1. Linux kernel (Linux内核)
2. Wi-Fi and touchscreen firmware (无线和触摸固件)
3. Boot initrd (启动引导)
4. Android ramdisk.img
5. Android system.img
6. Android userdata.img
7. Android cache.img
8. openiboot (实现双系统的重要部分)
准备工作(下面引用了另一个版本,着急的请先查看该版本。)
即使有了android.img.gz, ramdisk.img, system.img, userdata.img
和cache.img预置文件,你也需要遵循"Firmware"部分的说明并将所有固件文件都添加到android.img.gz文件中的
/lib/firmware
文件夹下, (压缩格式为ext2镜像)
/etc/firmware
system.img (未压缩的ext2镜像)
完成后,可直接进行最后的安装
Linux kernel (Linux内核)
1. 校检android-2.6.32分枝
e27f17b5318851395a66cbaf1524ea89ff8f0cb9
git://android.git.kernel.org/kernel/common
2. 修补内核android/kernel
3. 修复系统的Makefile功能 (需要在Google的repo(源)上下载Android toolchain).
4. 使用一些基于android/kernel/.config的配置文件
5. Build
Firmware
多点触摸的固件需要从 ioreg tree中解压分享,方法是在Cydia中安装iokittools并使用
ioreg -l -w 0
输入结果到文件。
读取此文件并查找出用于固件的AppleMultitouchSPI和 A-Speed Firmware(不知道是何物)
These contain a simple hexadecimal encoding for the bytes of the firmware files. 转换"Firmware" 为zephyr_main.bin、"A-Speed Firmware" 为 zephyr_aspeed.bin.并保存。
wi-fi固件可以在Marvell的网站找到 ,地址
http:///support.html
在"Choose a platform"里选择 "Linux 2.6 - Fedora" 后点击Search(搜索)按钮 SD-8686-* 文件中包括此文件。
重命名helper_sd.bin为 sd8686_helper.bin后保存此文件和sd8686.bin. 最终,生成的文件有zephyr_main.bin, zephyr_aspeed.bin, sd8686_helper.bin, sd8686.bin. 可以使用iPhone kernel来生成Marvell的固件,此处不确定。貌似写文章的人也在求此固件。
Boot initrd
Android的引导程序需要在一个iPhone Linux下的Debian环境中来制作,(貌似目前不可行) ,需要使用create-initrd-android.sh脚本,需要拷贝所有 *.bins 到此ramdisk的 /lib/firmware文件夹中。最后得到android.img.gz
Android images (安装镜像)
首先使用Google源安装的软件工具来检验1.6 (Donut) ,复制vendor/apple 到Google vendor/apple目录. 重命名data/sounds/AudioPackage2.mk为 data/sounds/Android.mk (如果想要弄出点声音的话). 同样,复制所有固件文件*.bins到vendor/apple/firmware然后运行android/android.patch接下来,创建一个"generic" image:.
build/envsetup.sh
choosecombo
[Select device, debug, generic, engineering]
export TARGET_USERIMAGES_USE_EXT2=true
make -j4 PRODUCT-generic-eng
接下来,等Android自制,我们会得到ramdisk.img 和system.img ,他们将在out/debug/target/product/generic/文件夹中,去接热乎儿的吧。其它的.img文件可以忽略,在这里我们用不到。
Android ramdisk.img
创建一个大小为1 MB 的空文件,制成ext2文件系统,挂载为loopback设备,重命名ramdisk.img为ramdisk.img.gz,使用
gunzip
来解压ramdisk.img.gz,以root用户身份在当前目录(./)运行
cpio -i -F ramdisk.img
并将ramdisk 文件解压到新的ext2文件系统
使用android/init.rc.patch修补init.rc
建立一个/cache文件夹
Unmount之后得到ramdisk.img
Android system.img
可直接使用由Android系统中生成的system.img
Android userdata.img
创建一个新的userdata.img (选择恰当格式).
However, without the Dalvik caches, the boot will hang the first
couple of times until those can be generated. This is some strange timeout
issue.
After the initial boot, you have to do
INSERT INTO secure (name, value) VALUES ('device_provisioned', 1);
Using sqlite3 in the database
/data/data/com.android.providers.settings/databases/settings.db
If the device is not "provisioned", it will automatically reject all incoming
calls. Very stupid.
Can someone please show me how this can be made less aggravating?
Android cache.img
创建一个空白50 MB ext2格式的
openiboot
查看iphonelinux repo(源)中openiboot文件夹下的说明文件
Installation (安装)
0. Jailbreak your iPhone. 先越狱
1. Under the jailbroken environment(在越狱环境下),将 ramdisk.img, system.img, ramdisk.img,
userdata.img, cache.img, android.img.gz, 和zImage上传到/private/var.
2. Follow the instructions for installing openiboot.
- Essentially:
1. sudo ./loadibec openiboot.img3
2. Use Hold button to select Console
3. Push Home button
4. sudo ./oibc
5. 输入install
- loadibec 和 oibc 在x86 Linux下构建
- 需要 librickrb, pthreads, readline
Running (运行)
在openiboot bootloader中,按住HOme两秒钟以上进入Android, it should be enough to select Console with Hold and hold the Home button for more than two seconds to trigger the boot of Android.
点击进入论坛教程
iPhone2G(一代)安装Android双系统安装教程
2018-04-01 19:11:45 阅读:8459+
出处:本站原创
责任编辑:范文芳
上一篇:iPhone4蓝牙应该怎样
下一篇:水果忍者iPhone
“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!