393408 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

頑張れ!ポイド

頑張れ!ポイド

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

カテゴリ

L-01D

(2)

P01D

(3)

SC-02B

(3)

ISW12HT

(1)

DIGNO

(10)

Linux

(1)

IS11LG

(22)

図書館

(1)

INFOBAR A02

(7)

L01E

(18)

MEMU

(0)

SC06D

(4)

LGL21

(14)

LGL22

(2)

SC03E

(20)

L01F

(4)

Android

(5)

github

(1)

Z500KL

(1)

SCL23

(2)

日記/記事の投稿

キーワードサーチ

▼キーワード検索

コメント新着

solarisintel@ Re[1]:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) magicianさんへ 普通のwipe操作ではROMが…
magician@ Re:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) 初めまして、お助けください。 SC-03Eに、…
magician@ Re:L01E用のoreo(8.0, 8.1) カスタムROM(03/11) 初めまして、お助けください。 SC-03Eに、…
ヴァジャイナ@ Re:SC03E用のAndroid 10, Optimized-LineageOS-17.1-20220106-sc03e.zip(01/06) こちらのandroid 10のロムですが、今年の…
goofy ahh@ Re[8]:L01Fでlineage-17.1 Android 10.0を動かしてみた(11/27) 間違えて2回しちゃいましたすいません
2015年01月28日
XML
カテゴリ:DIGNO

こんなメニューを出すようにする。
recovery.jpg

準備するもの
・環境 CentOS 6.5 32ビット (VirtualBoxで作成)
・京セラサイトからダウンロードしたカーネルソース
・カーネルソース内のHowToBuildに記載されているandroidソース環境 (Code Aurora Forum (CAF) よりダウンロード)
・xdaからダウンロードしたbootimg_tools.zip
・実機から取り出したrecovery.img

リカバリーイメージは、以下のコマンドで解体しておく

【Linux】
# ./split_boot recovery.img

◆リカバリーモードでメニュー表示する

手順)
1) ダウンロードしたソースで、以下を修正する
【linux】
# vi ./bootable/recovery/default_recovery_ui.c
      case KEY_CAMERA:
      case KEY_MENU: <-- 挿入
       return SELECT_ITEM;



2) コンパイルする

【linux】
# source build/envsetup.sh
# choosecombo 1 1 msm7630_surf user
# make recovery -j4

./out/target/product/msm7630_surf/system/bin/にrecoveryが出来上がるので、
bootimg_tools.zip で解凍した ramdisk配下のsbin/recovery に上書きコピーする

# cp ./out/target/product/msm7630_surf/system/bin/recovery ~/recovery/ramdisk/sbin/

メニュー操作は、以下の通り
・メニュー呼び出し [HOME]
・選択 [VOL UP][VOL DOWN]
・決定 [MENU]


◆リカバリーモードでSDカードを認識させる。

1)実機からコピーする
【PC】
c:\temp> adb pull /system/bin/linker
c:\temp> adb pull /system/bin/rmt_storage
c:\temp> adb pull /system/bin/sdgpiocmd
c:\temp> adb pull /system/lib/libcutils.so
c:\temp> adb pull /system/lib/libstdc++.so
c:\temp> adb pull /system/lib/liblog.so
c:\temp> adb pull /system/lib/libm.so
c:\temp> adb pull /system/lib/libc.so
c:\temp> adb pull /system/lib/modules/kc_sdddrv.ko
c:\temp> adb pull /system/lib/modules/kc_sdcarddrv.ko

2) 各ファイルをリカバリーモードのramdisk配下のディレクトリに同じようにコピーする

※bin配下のファイルは、chmod 755 しておくこと。
リカバリーモードのadb shellで以下を実行してエラーなくロードできるか確認する。
【adb】
# insmod /system/lib/modules/kc_sdddrv.ko
# insmod /system/lib/modules/kc_sdcarddrv.ko

ロードできたらデバイスファイルが出来たか確認する

【adb】
# ls -l /dev/block/kc_sd*
brw------- root root 252, 0 2015-01-28 15:28 kc_sdcarddrv
brw------- root root 252, 1 2015-01-28 15:28 kc_sdcarddrv1
brw------- root root 253, 0 2015-01-28 15:28 kc_sdvd

ramdisk配下の/etc/recovery.fstab を修正する

【linux】
# vi ./ramdisk/etc/recovery.fstab
# mount point   fstype          device                  [device2]
/boot mtd boot
/cache yaffs2 cache
/data yaffs2 userdata
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/kc_sdcarddrv1 <-- 修正
/system yaffs2 system


ramdisk配下の/etc/recovery_mmc.fstab を修正する

【linux】
# vi ./ramdisk/etc/recovery_mmc.fstab
# mount point   fstype          device                  [device2]
/boot emmc /dev/block/mmcblk0p8
/cache ext4 /dev/block/mmcblk0p15
/data ext4 /dev/block/mmcblk0p13
/delta ext4 /dev/block/mmcblk0p18
/misc emmc /dev/block/mmcblk0p23
/recovery emmc /dev/block/mmcblk0p16
/sdcard vfat /dev/block/kc_sdcarddrv1 <-- 修正
/system ext4 /dev/block/mmcblk0p12


3) ramdisk配下のinit.rc、init.qcom.rc を書き換える。
init.qcom.rcがなかったら新規に作る。

【linux】
# vi ./ramdisk/init.rc
# chmod +x ./ramdisk/init.rc
on early-init
  start ueventd

on init
  export PATH /sbin:/system/bin
  export ANDROID_ROOT /system
  export ANDROID_DATA /data
  export EXTERNAL_STORAGE /sdcard

  symlink /system/etc /etc

  mkdir /sdcard
  mkdir /data
  mkdir /cache
  mount /tmp /tmp tmpfs

  export LD_LIBRARY_PATH /system/lib

on boot
  ifup lo
  hostname localhost
  domainname localdomain
  class_start default

service ueventd /sbin/ueventd
  critical

service recovery /sbin/recovery

service adbd /sbin/adbd recovery
  disabled

on property:persist.service.adb.enable=1
  start adbd

on property:persist.service.adb.enable=0
  stop adbd


【linux】
# vi ./ramdisk/init.qcom.rc
# chmod +x ./ramdisk/init.qcom.rc
on init
  export LD_LIBRARY_PATH /system/lib

 write /sys/class/usb_composite/adb/enable 0
 write /dev/usbmode "0 2 123456"

on boot
  insmod /system/lib/modules/kc_sdgdrv.ko
  insmod /system/lib/modules/kc_sdcarddrv.ko
  ##insmod /system/lib/modules/mtd_nandecctest.ko
  ##wait /sys/kernel/mmc_protect/clear
  #write /sys/kernel/mmc_protect/clear mmcblk0p12
  #write /sys/kernel/mmc_protect/clear mmcblk0p8

service rmt_storage /system/bin/rmt_storage
  user root
  disabled

on property:ro.emmc=1
  start rmt_storage

on property:init.svc.adbd=stopped
  write /sys/class/usb_composite/adb/enable 0

on property:init.svc.adbd=running
  write /sys/class/usb_composite/adb/enable 1


4) recovery.img を再作成する

【linux】
# cd ~/recovery
# ../repack_ramdisk ./ramdisk recovery-new.img-ramdisk.cpio.gz
# ../mkbootimg \
--kernel kernel \
--ramdisk recovery-new.img-ramdisk.cpio.gz \
--cmdline 'console=ttyDCC0 androidboot.hardware=qcom' \
--base 0x00200000 \
-o ../recovery_new.img

5) ROM書き込み
【pc】
c:\temp> adb push recovery_new.img /mnt/sdcard
c:\temp> adb shell
$ au
# insmod /data/local/mtd_nandecctest.ko
# echo -n "mmcblk0p16" > /sys/kernel/mmc_protect/clear
# dd if=/mnt/sdcard/recovery_new.img of=/dev/block/mmcblk0p16 bs=4096

完成

recoveryへリブートして確認する
# reboot recovery


DIGNOのカーネルでは、MMCのプロテクトが効いているため、このままでは、/systemへの書き込みはできない。記載している中の一部とファイルをごにょごにょする必要がある。







お気に入りの記事を「いいね!」で応援しよう

最終更新日  2015年01月29日 12時46分20秒
コメント(0) | コメントを書く
[DIGNO] カテゴリの最新記事



© Rakuten Group, Inc.