OpenWebBoardの中身を見てみる


KDDIが今現在、ハッカソンなどで無償配布しているOpenWebBoard(以下OWB)なのですが、見る限り内部にロックはかかっていないようなので、好き勝手いじれそうなのです。
CPUも中華タブレットにありがちな奴なので、発売されればLinuxボードとして生まれ変わるかもしれません。
コアはAndroidなので、Android向けに書かれたDebianを内部でbootするためのスクリプトが動くかもしれないです。

まぁ、そんな夢のあるボードなのですが、今現在はリカバリーモードなどが特に用意されているわけでもなく、systemがマウント出来なかったら文鎮化確定のようです。

# Level.1
## USB Storageについて
OWBにはUSBポートが一つだけついていますが、標準でUSBハブを使用することが出来ます。
そこにUSBメモリを刺してマウントすることが出来ます。

どこにマウントされたかよく分からなかったのですが、
`/mnt/usb_storage`にマウントされるようです。

```
root@rk3066:/mnt/usb_storage # ls -al
drwxrwxr-x system   sdcard_rw          1970-01-01 09:00 USB_DISK0
```
きちんと書き込みの権限もあるようなので、Level.2で書くROMのバックアップはこちらに置こうかと思います。

## ベースとなったAndroidについて
```:/system/build.prop
ro.build.id=KOT49H
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.product.model=rk3066
ro.product.brand=rockchip
ro.product.name=rk3066
ro.product.device=rk3066
ro.product.board=rk30sdk
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=rockchip
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=rk3066
```
※一部ビルドしたユーザー名が表示されていたので省略してます。

以下のようにAndroid 4.4.2ベースのようです。

FirefoxOSはICEベースで書かれているのですが、今現在はJBとKKにも移植されて、既に製品に組み込まれているのですね。

# Level.2

## PATHについて

```
root@rk3066:/ # echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
```

## その他情報
```:/proc/version
Linux version 3.0.36+ (****@******) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT --------------------
```

```:/proc/cpuinfo
Processor	: ARMv7 Processor rev 0 (v7l)
processor	: 0
BogoMIPS	: 1631.46

processor	: 1
BogoMIPS	: 1631.46

Features	: swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc09
CPU revision	: 0

Hardware	: RK30board
Revision	: 0000
Serial		: 0000000000000000
```
## Recoveryモードについて

```
$ adb reboot recovery
```

実行してみても、特に特別なRecoveryモードを用意しているわけではありません。
ただ、adbではdeviceとしてマウントされるため、shellに入ることが出来ます。

しかし、入った直後は`/sbin`と`/system/bin`しかPATHが通っていません
(これがAndroid標準の動作なのか、私には分かりません)

## Bootloaderについて

```
$ adb reboot bootloader
```
暗転したまま何も画面にもfastbootにも反応しないため詳細は不明です。
ドライバを入れたら動くのかもしれない？

# ROMのバックアップ
今現在は有事の際には書き戻す方法がないのですが、バックアップは取れそうです。
まずはmtdの一覧を見てみましょう。

```
root@rk3066:/data # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00400000 00004000 "misc"
mtd1: 00c00000 00004000 "kernel"
mtd2: 00c00000 00004000 "boot"
mtd3: 02000000 00004000 "recovery"
mtd4: 04000000 00004000 "backup"
mtd5: 08000000 00004000 "cache"
mtd6: 3fc00000 00004000 "userdata"
mtd7: 00400000 00004000 "metadata"
mtd8: 00400000 00004000 "kpanic"
mtd9: 30000000 00004000 "system"
mtd10: 151800000 00004000 "user"
```

あまり面白みはないですね。
さすがに、ベースがAndroidなので、AndroidのROM焼きを専門にやっている方なら特に問題はないかと思います。

### backup
```
cd /mnt/usb_storage/USB_DISK0
mkdir owb_backup
dd if=/dev/mtd/mtd0 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd0_misc.img
dd if=/dev/mtd/mtd1 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd1_kernel.img
dd if=/dev/mtd/mtd2 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd2_boot.img
dd if=/dev/mtd/mtd3 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd3_recovery.img
dd if=/dev/mtd/mtd4 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd4_backup.img
dd if=/dev/mtd/mtd6 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd6_userdata.img
dd if=/dev/mtd/mtd7 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd7_metadata.img
dd if=/dev/mtd/mtd8 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd8_kpanic.img
dd if=/dev/mtd/mtd9 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd9_system.img
dd if=/dev/mtd/mtd10 of=/mnt/usb_storage/USB_DISK0/owb_backup/mtd10_user.img
```
バックアップする・しないはご自由にお願いします。
また、`USB_DISK0`は自分の構成に合わせて書き換えて下さい。
mtd6,9,10はワリと容量があるので注意。
mtd10は私の環境では3.9GBありました。
環境によりけりですが、私の環境ではUSBハブを通しても5MB/secぐらいは出ました。

書き戻すときはddコマンドなので逆にやれば書き戻せたと思います。知らね。

あ、`flash_image`コマンドがあるため、簡単に焼けそうですね！


# まとめ
* これは何でもできるLinuxボードに化けそう
* そういえば隣の人の個体はLEDが点灯していたはずなんだけど、私のは一切点灯しないが個体差とかあるのかな？
* 表面右側になんかボタンがあるけどなんだこれ？
  * ↑押してみたけど何も反応しませんでした

## 次回予告
次回は同梱してたマニュアルについて書くよ！