無保証です。
実機が壊れるかもしれない
- 本wikiに掲載されているデータは無保証であるがままです
- サポートは一切ありません
- ダウンロードされた方の自己責任において処理してください
- 実機にて動作させる場合は文鎮化対策を行ってからお願いします
- recovery領域にデフォルトの1.6(01.00.09)mtd0が必要です
- qxdm_enable を 1 にしている事が前提です
- 他のBBでは動かないかもしれません。その際は各自調整願います
1.6を実行中にPCから転送するものです。
IS01 rooter必須です。
Linux環境必須です。
Windows等への移植は自由です。
GNU Make 3.81で確認しました。
自動実行した場合で手元ではインストールに4分かかりました。
インストール直後の起動は遅いです。(インストールより時間がかかるかもしれない)
初期では、設定ファイルなどが無いためロック画面のサイズがおかしいですが再度、再起動すれば正常になります。
2.2でadb接続出来ないときは、
adbで接続できないときは?を参照下さい。
別途必要なファイル
バイナリファイルは展開して、MakeInstallと同じフォルダに置いて下さい。
次の2つはWebからダウンロードして下さい。
そして、MakeInstallと同じディレクトリに置いて下さい
- split_bootimg.pl
- unubinize.pl
ubinizeは
$ sudo apt-get install mtd-utils
でインストールできます。
準備が完了した際のMakeInstallでの ls
$ ls
Makefile flash_image is01rebuild2_2_r1_3_20110119_01/ ubi.cfg
init.rc.patch split_bootimg.pl unubinize.pl
インストーラもどき
デフォルトでは recovery に デフォルトの boot.bin(mtd0.bin) が
書き込まれている事を想定しています。
|
なにか間違いを見つけられた方は下記コメント欄にコメント頂けると幸いです
- Makefileの依存関係を修正しました。
- 新/system (symlink)配下の所有者を root.root に変更しました。
(20110127 0455)
MakeInstall_20110126_01.tar.gz
- README.txt 撤廃
- patch先起動image(素の状態)にmd5sumを付加するように変更
- Step3名称を froyo_boot.img から ubinize に変更
- mkbootimg、mkbootfsをバイナリディレクトリのtools_linuxから利用するように変更
- 最終結果において、mtdのバックアップファイル名意外に前バージョンと変更は有りません。
- 依存関係が壊れていたので公開中止。
(20110126 1941)
MakeInstall_20110124_03.tar.gz
- README.txtを簡素化、本ページを解説としました。
- Makefile内の表現を修正
- 機能は20110124_02と変わりありません。
(20110124 0407)
MakeInstall_20110124_02.tar.gz
デフォルトをステップ実行にしました。(デフォルトでの自動実行をやめました。)
init.rc修正しました。違いは先頭行のみです。
ch
を削除願います。
initにエラーとして認識されて無視されるはずですので、影響はさほど無いかと思います。
(20110124_0229)
MakeInstall_20110124_01.tar.gz
初版 (20110124)
自動実行したい場合は?
Makefileを下記のように修正して
.PHONY:all
all:pull patch ubinize copy push_froyo copy_froyo ch push_flash_image push_bootimage
とし
$ make
とすると最後のrecovery領域への書き込みまで一気に実行する。再起動だけは手動です。
2.2から1.6に戻す場合は?
recovery_kitでのrecovery modeで
$ adb shell mount_data
$ adb shell /data/backup0/flash_image recovery /data/backup0/mtd2.bin
もしくは、2.2(Froyo)が起動した状態でPCより
$ adb shell insmod /sqlite_journals/is01root/msm_nand_ex.ko
$ adb shell /data0/backup0/flash_image recovery_wr /data0/backup0/mtd2.bin
実機を再起動 (adb reboot)
1.6に戻る
再度、2.2にする場合は
MakeInstallのディレクトリにて
$ make push_bootimage
アンインストールするには?
1.6に戻し、1.6が起動した状態で、PCよりMakeInstallディレクトリにて
# make clean
詳細は下記Step.9を参照のこと
ステップ実行(デフォルト)でインストールする場合は?
Step.1 pull recovery image取得
$ make -n pull
内容を確認する
$ make pull
Step.2 patch カーネル と ramdiskの分離し、ramdiskに修正を加える。
init.rc の生成もココ。
$ make -n patch
内容を確認する
$ make patch
mv initlogo.rle initlogo.rle.bak
は重要な処理ではないので Makefile から削除しても構いません。
mv initlogo.rle initlogo.rle.bak;
を削除しても ) は必要です。
Step.3 ubinize boot imageの作成
$ make -n ubinize
内容を確認する
$ make ubinize
step.4 copy 1.6環境を symlink 予定環境にコピーする。
$ make -n copy
内容を確認する
$ make copy
step.5 push_froyo 2.2のバイナリを実機の/data/backup0/system に転送する
$ make -n push_froyo
内容を確認する
$ make push_froyo
step.6 copy_froyo 実機に転送したバイナリを symlink 予定先にコピーする
$ make -n copy_froyo
内容を確認する
$ make copy_froyo
step.7 ch permission、ownerの訂正を行う
$ make -n ch
内容を確認する
$ make ch
ここは処理の見落としがあるかもしれない。
step.8 push_flash_image flash 書き込み用プログラムを転送する
$ make -n push_flash_image
内容を確認する
$ make push_flash_image
step.9 インストールをやめる場合は?
やめない場合は、Step.10へ
ただし、Makefile になにかミスがあると悪化させる事になるので、
$ make -n clean
しっかり確認する。
$ make clean
$ adb shell
#
実機の内容をつぶさに確認する
step1に戻るか中止する。
step.10 push_bootimage 作成した boot image を実際のrecovery領域に書き込む
ここでミスして再起動すると文鎮化します。
$ make -n push_bootimage
内容を確認する
ここまでで、何かミスが有れば一気に戻せます。
戻す場合は Step.9へ
$ make push_bootimage
再起動しなければ、flash_image で pull した mtd2.bin (または、mtd0.bin) を書き込めば戻ります。
Step.11 手動で再起動する
boot image の書き込み先を間違えると文鎮になるかもしれない。
今までの内容を再確認する。
$ adb shell
して中身をもう一回見てみるのも良い。
イロイロな決意が出来たら、実機を再起動する。
2.2が起動したら成功
中身はコレ
UNUBI_MTD:=mtd2.bin
FROYO_DIR:=is01rebuild2_2_r1_3_20110119_01
WRITE_PARTITION:=recovery_wr
#
MKBOOTIMG:=$(FROYO_DIR)/tools_linux/mkbootimg
MKBOOTFS:=$(FROYO_DIR)/tools_linux/mkbootfs
UNUBINIZE:=./unubinize.pl
SPLIT_BOOTIMG:=./split_bootimg.pl
##############
KERNEL:=$(UNUBI_MTD).out-kernel
EXECDIR:=/sqlite_journals/is01root
SU:=$(EXECDIR)/_su
BUSYBOX:=$(EXECDIR)/busybox
##############
TARGET:=froyo_boot.img
FILES:=./ramdisk/init.rc
BOOTIMG:=my_mkboot.img
RAMDISKDIR:=ramdisk
RAMDISK:=my_ramdisk.img
UBICFG:=ubi.cfg
CMDLINE:="console=ttyMSM2,115200n8 androidboot.hardware=qcom"
##############
.PHONY:all
all:
@echo is01rebuild froyo installer. Web site for more information.
#pull patch ubinize copy push_froyo copy_froyo ch push_flash_image
#push_bootimage
#reboot
#ubi
.PHONY:ubinize
ubinize:$(TARGET)
$(TARGET): $(BOOTIMG) $(UBICFG)
ubinize -o $(TARGET) -p 128KiB -m 2048 -O 256 $(UBICFG)
#mkboot
$(BOOTIMG):$(RAMDISK) $(KERNEL)
$(MKBOOTIMG) --kernel $(KERNEL) --ramdisk $(RAMDISK) --cmdline $(CMDLINE) --base 0x20000000 -o $@
$(RAMDISK):$(FILES)
rm -rf ramdisk/*~
$(MKBOOTFS) $(RAMDISKDIR) > $(RAMDISK)
$(FILES):
.PHONY:copy_froyo
copy_froyo:
adb shell $(SU) 0 $(BUSYBOX) cp -fa /data/backup0/system /data/system_ex
.PHONY:ch
ch:
adb shell $(SU) 0 chmod 550 /data/system_ex/system/etc/dhcpcd/dhcpcd-run-hooks
adb shell $(SU) 0 chown dhcp.shell /data/system_ex/system/etc/dhcpcd/dhcpcd-run-hooks
adb shell $(SU) 0 chmod 755 /data/system_ex/system/etc/dhcpcd/dhcpcd-hooks
adb shell $(SU) 0 chown root.root /data/system_ex/system/etc/dhcpcd/dhcpcd-hooks
adb shell $(SU) 0 chmod 644 /data/system_ex/system/etc/dhcpcd/dhcpcd.conf
adb shell $(SU) 0 chown root.root /data/system_ex/system/etc/dhcpcd/dhcpcd.conf
.PHONY:push_froyo
push_froyo:
adb push $(FROYO_DIR)/system /data/backup0/system/
adb shell $(SU) 0 $(BUSYBOX) chown -R 0.0 /data/backup0/system
.PHONY:copy
copy:
adb shell $(SU) 0 mkdir /data/data_ex
adb shell $(SU) 0 mkdir /data/data_ex/data
adb shell $(SU) 0 $(BUSYBOX) cp -a /data/misc /data/data_ex/data/
adb shell $(SU) 0 $(BUSYBOX) sed -i '1a ctrl_interface=DIR=/data/misc/wifi/sockets' /data/data_ex/data/misc/wifi/wpa_supplicant.conf
adb shell $(SU) 0 mkdir /data/system_ex
adb shell $(SU) 0 mkdir /data/system_ex/system
adb shell $(SU) 0 $(BUSYBOX) cp -a /system/lib /data/system_ex/system/
adb shell $(SU) 0 $(BUSYBOX) cp -a /system/bin /data/system_ex/system/
adb shell $(SU) 0 $(BUSYBOX) cp -a /system/etc /data/system_ex/system/
adb shell $(SU) 0 $(BUSYBOX) cp -a /system/usr /data/system_ex/system/
.PHONY:pull
pull:pull_clean
adb shell mkdir /data/backup0
adb shell chmod 777 /data/backup0
adb shell $(SU) 0 dd if=/dev/mtd/mtd0 of=/data/backup0/mtd0.bin
adb shell $(SU) 0 dd if=/dev/mtd/mtd2 of=/data/backup0/mtd2.bin
adb shell $(SU) 0 chmod 444 /data/backup0/mtd0.bin
adb shell $(SU) 0 chmod 444 /data/backup0/mtd2.bin
adb pull /data/backup0/$(UNUBI_MTD)
cp -v $(UNUBI_MTD) $(basename $(UNUBI_MTD))_`md5sum $(UNUBI_MTD) | awk '{print $$1}'`.bin
adb shell $(SU) 0 $(BUSYBOX) cp /data/backup0/$(UNUBI_MTD) "/data/backup0/$(basename $(UNUBI_MTD))_\`$(BUSYBOX) md5sum /data/backup0/$(UNUBI_MTD) | $(BUSYBOX) awk '{print \$$1}'\`.bin"
.PHONY:patch
patch:
$(UNUBINIZE) $(UNUBI_MTD)
$(SPLIT_BOOTIMG) $(UNUBI_MTD).out
mkdir -p ramdisk
( cd ramdisk; \
cat ../$(UNUBI_MTD).out-ramdisk.cpio | cpio -i; \
mv init.rc init.rc.bak; \
cat init.rc.bak | grep -v '#' > init.rc; \
chmod 750 init.rc; \
patch init.rc < ../init.rc.patch; \
mv system system0; \
mv initlogo.rle initlogo.rle.bak; )
cp -v $(FROYO_DIR)/ramdisk/init ramdisk/init
cp -v $(FROYO_DIR)/ramdisk/default.prop ramdisk/default.prop
cp -v $(FROYO_DIR)/ramdisk/sbin/adbd ramdisk/adbd
.PHONY:push_flash_image
push_flash_image:
adb push flash_image /sqlite_journals/is01root
.PHONY:push_bootimage
push_bootimage:ubinize
adb push $(TARGET) /data/backup0/
adb shell $(SU) 0 $(EXECDIR)/flash_image $(WRITE_PARTITION) /data/backup0/$(TARGET)
.PHONY:reboot
reboot:
adb shell $(SU) 0 reboot recovery
.PHONY:wpa
wpa:
adb push wpa_supplicant.conf /data/misc/wifi/
adb shell /system/bin/chown wifi.wifi /data/misc/wifi/wpa_supplicant.conf
adb shell /system/bin/chmod 660 /data/misc/wifi/wpa_supplicant.conf
.PHONY:push_froyo_clean
push_froyo_clean:
adb shell $(SU) 0 $(BUSYBOX) rm -rf /data/backup0/system
.clean:target_froyo_clean
target_froyo_clean:
adb shell $(SU) 0 $(BUSYBOX) rm -rf /data/data_ex/data
adb shell $(SU) 0 $(BUSYBOX) rm -rf /data/system_ex/system
@echo
@echo
@echo All froyo files of the target was deleted.
@echo !!!! Please change recovery partition image !!!!!
@echo
@echo
.PHONY:pull_clean
pull_clean:
rm -f $(UNUBI_MTD) $(UNUBI_MTD).out $(UNUBI_MTD).out-ramdisk.cpio $(UNUBI_MTD).out-kernel
rm -rf ramdisk
.PHONY:local_clean
local_clean:
rm -f $(RAMDISK)
rm -f $(BOOTIMG)
rm -f $(TARGET)
rm -rf *~
.PHONY:clean
clean: local_clean pull_clean push_froyo_clean target_froyo_clean
コメント
- 初歩的な質問で申し訳ありませんが...
「デフォルトでは recovery に デフォルトの boot.bin(mtd0.bin) が書き込まれている事を想定しています」とありますが、
BB10 環境でRecovery 領域へHacked カーネル#001 を書き込んでいる状態でも問題ないかと思っていますが、如何でしょうか? -- (Yukto8492) 2011-01-27 13:13:47
- >>Yukto8492さん
init.rc への patch でエラーが出なければ問題ない可能性は大きいかと思います。
また、patch作業自体も手作業で行っても問題有りません。
ただ、Hacked カーネル#001 を見ていないので何とも言えません。
Makefile の先頭にある変数定義を書き換える事と、
patch を手作業に変える事でだいたい対応できるはずです。
-- (is01rebuild ) 2011-01-28 01:16:17
- is01rebuild さん、ご返答ありがとうございます。
時間を見つけて、実行してみたいと思います。 -- (Yukto8492) 2011-01-29 13:56:34
最終更新:2011年02月06日 22:46