你好,歡迎來到IOS教程網

 Ios教程網 >> IOS教程 >> 關於IOS教程 >> iPhone2G(一代)安裝Android雙系統安裝教程

iPhone2G(一代)安裝Android雙系統安裝教程

編輯:關於IOS教程

  早上本站報道了:終於實現 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://www.marvell.com/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. 

        點擊進入論壇教程

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved