--- /dev/null
+EXECDIR:=/sqlite_journals/is01root
+SU:=$(EXECDIR)/_su
+BUSYBOX:=$(EXECDIR)/busybox
+##############
+UNUBI_MTD:=mtd2.bin
+WRITE_PARTITION:=recovery_wr
+#SERIAL:=-s SSHEX012345
+##############
+MKBOOTIMG:=mkbootimg
+MKBOOTFS:=mkbootfs
+UNUBINIZE:=./unubinize.pl
+SPLIT_BOOTIMG:=./split_bootimg.pl
+#
+KERNEL:=$(UNUBI_MTD).out-kernel
+##############
+TARGET:=donut_symlink_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:copy
+#push_bootimage
+#all:pull unubi patch copy push_bootimage
+#reboot
+
+#ubi
+.PHONY:ubi
+ubi:$(TARGET)
+
+
+$(TARGET):$(BOOTIMG) $(UBICFG)
+ ubinize -o $@ -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
+copy:
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) mkdir -p /data/data_ex
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) mkdir -p /data/data_ex/donut_orig
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) cp -a /data/* /data/data_ex/donut_orig/
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) mkdir -p /data/system_ex
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) mkdir -p /data/system_ex/donut_orig
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) cp -a /system/* /data/system_ex/donut_orig/
+# adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) rm -rf /data/data_ex/donut_orig/system_ex
+
+
+.PHONY:pull
+pull:pull_clean
+ adb $(SERIAL) shell mkdir /data/backup0
+ adb $(SERIAL) shell chmod 777 /data/backup0
+ adb $(SERIAL) shell $(SU) 0 dd if=/dev/mtd/mtd0 of=/data/backup0/mtd0.bin
+ adb $(SERIAL) shell $(SU) 0 dd if=/dev/mtd/mtd2 of=/data/backup0/mtd2.bin
+ adb $(SERIAL) shell $(SU) 0 chmod 444 /data/backup0/mtd0.bin
+ adb $(SERIAL) shell $(SU) 0 chmod 444 /data/backup0/mtd2.bin
+ adb $(SERIAL) 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:unubi
+unubi:
+ $(UNUBINIZE) $(UNUBI_MTD)
+ $(SPLIT_BOOTIMG) $(UNUBI_MTD).out
+ mkdir -p ramdisk
+ ( cd ramdisk; \
+ cat ../$(UNUBI_MTD).out-ramdisk.cpio | cpio -i )
+
+
+.PHONY:patch
+patch:
+ ( cd ramdisk; \
+ cp -a init.rc init.rc.bak; \
+ patch init.rc < ../init.rc.patch; \
+ mv system system0; \
+ mv initlogo.rle initlogo.rle.bak; \
+ )
+ cp -v default.prop ramdisk/default.prop
+# chmod 750 init.rc; \
+# mv init.rc init.rc.bak; \
+# cat init.rc.bak | grep -v '#' > init.rc; \
+
+
+.PHONY:push_flash_image
+push_flash_image:
+ adb $(SERIAL) push flash_image /sqlite_journals/is01root
+
+.PHONY:push_bootimage
+push_bootimage:$(TARGET)
+ adb $(SERIAL) push $(TARGET) /data/backup0/
+ adb $(SERIAL) shell $(SU) 0 $(EXECDIR)/flash_image $(WRITE_PARTITION) /data/backup0/$(TARGET)
+
+.PHONY:reboot
+reboot:
+ adb $(SERIAL) shell $(SU) 0 reboot recovery
+
+
+.clean:target_donut_clean
+target_donut_clean:
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) rm -rf /data/data_ex/donut_orig
+ adb $(SERIAL) shell $(SU) 0 $(BUSYBOX) rm -rf /data/system_ex/donut_orig
+
+
+.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
+#target_donut_clean
--- /dev/null
+IS01rooterが入っているか、busybox&_suがインストールされている環境で
+symlinkの準備をするだけのものです。
+
+デフォルトではsymlinkな1.6向けのコピーを行うのみです。
+Makefile内には、各種ターゲットがあります。
+init.rcを調整するか、patchを準備すると一発symlink作成もできます。
+
+cp -a /data/* /data/data_ex/donut_orig/
+でデータをデータ内にコピーします。
+自分自身はエラーで回避されると思いますが、
+/data/data_ex/donut_orig/data_ex
+/data/data_ex/donut_orig/system_ex
+が入れ子になると容量を無駄に消費する上、
+ディレクトリ構成上勘違いしやすくなるかとおもいます。
+/data/* ではなく個別にコピーするか、
+入れ子になってしまった部分は削除するとよいかもしれません。
+
+端末が複数台ある場合は下記変数を有効化するとよいと思います。
+シリアルは adb devices で一覧がでます。
+#SERIAL:=-s SSSSS012345