バッファローが発売している「おもいでばこ」
初代モデルのPD-100が、時々安く売ってるのでちょっと気にはなっていた。
製品ラインナップを見ると、3種類、PD-100、PD-100S、PD-100S-Lあるが、外形、消費電力などは同じで、容量の違いが大きな違いのように見受けられる。
しかし、firmwareのアップデータを見ると、「PD-100」と「PD-100S/PD-100S-L」とで異なっている。
PD-100:最新は ver 1.21
PD-100S/PD-100S-L:最新は ver 1.10
別物であるのか?
気になったのでダウンロードしてみた。
zipを展開していくと、中から現れたのはsquashfsのファイル。
PD-100もPD-100Sも、根本構造は同じで、基本Android 2.2。
そう、Android。
「連携するアプリがAndroid」ではなく、「おもいでばこ自体がAndroid BOX」なのです。
/system/build.prop なんて、どちらも同一。
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=MASTER
ro.build.display.id=berlin-eng 2.2 MASTER eng.root.20110715.130354 test-keys
ro.build.version.incremental=eng.root.20110715.130354
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2
ro.build.date=2011年 7月 15日 金曜日 13:04:16 JST
ro.build.date.utc=1310702656
ro.build.type=eng
ro.build.user=root
ro.build.host=y-maruyam-desktop
ro.build.tags=test-keys
ro.product.model=berlin
ro.product.brand=marvell
ro.product.name=berlin
ro.product.device=berlin
ro.product.board=
ro.product.cpu.abi=armeabi
ro.product.manufacturer=unknown
ro.product.locale.language=mdpi
ro.product.locale.region=
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=berlin
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=berlin-eng 2.2 MASTER eng.root.20110715.130354 test-keys
ro.build.fingerprint=marvell/berlin/berlin/:2.2/MASTER/eng.root.20110715.130354:eng/test-keys
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.kernel.android.checkjni=1
ro.setupwizard.mode=OPTIONAL
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
#changed by maru
dalvik.vm.heapsize=64m
/init あたりは微妙に差があるが、おそらくは、PD-100Sでは無線LAN USBアダプタが添付されている、という事情で、読み込むようにしたのだと思われる変更点である。
-#insmod /system/lib/modules/rtutil5370sta.ko
-#insmod /system/lib/modules/rt5370sta.ko
-#insmod /system/lib/modules/rtnet5370sta.ko
+insmod /system/lib/modules/rtutil5572sta.ko
+insmod /system/lib/modules/rt5572sta.ko
+insmod /system/lib/modules/rtnet5572sta.ko
+#insmod /system/lib/modules/log/rtutil5572sta.ko
+#insmod /system/lib/modules/log/rt5572sta.ko
+#insmod /system/lib/modules/log/rtnet5572sta.ko
+
+insmod /lib/ufsd.ko
PD-100にも/system/lib/modulesに上記ファイルはある。
(/system/lib/modules/log/ は無い)
Androidなら搭載アプリに差があるのか、とsystem/app以下を見てみたが、たいした差はない。
# ls -l pd100-firmware/system/app/
合計 67760
-rw-rw-rw- 1 1000 root 143193 7月 13 2012 AccountAndSyncSettings.apk
-rw-rw-rw- 1 1000 root 18781 7月 13 2012 ApplicationsProvider.apk
-rw-rw-rw- 1 1000 root 65570 7月 13 2012 CertInstaller.apk
-rw-rw-rw- 1 1000 root 11747 7月 13 2012 DefaultContainerService.apk
-rw-rw-rw- 1 1000 root 106641 7月 13 2012 Development.apk
-rw-rw-rw- 1 1000 root 74477 7月 13 2012 DownloadProvider.apk
-rw-rw-rw- 1 1000 root 97041 7月 13 2012 FileManager.apk
-rwxrw-rw- 1 1000 root 16243 7月 13 2012 GetIpAddress.apk
-rw-rw-rw- 1 1000 root 12295 7月 13 2012 HTMLViewer.apk
-rw-rw-rw- 1 1000 root 393634 7月 13 2012 MarvellScreenController.apk
-rw-rw-rw- 1 1000 root 49797 7月 13 2012 MediaProvider.apk
-rw-r--r-- 1 root root 58160522 9月 21 2012 Omoject.apk
-rwxr--r-- 1 root root 6929700 9月 21 2012 OpenWnnControlPanelJAJP.apk
-rw-rw-rw- 1 1000 root 74211 7月 13 2012 PackageInstaller.apk
-rw-rw-rw- 1 1000 root 3637 7月 13 2012 Provision.apk
-rw-rw-rw- 1 1000 root 2531112 7月 13 2012 Settings.apk
-rw-rw-rw- 1 1000 root 38162 7月 13 2012 SettingsProvider.apk
-rw-rw-rw- 1 1000 root 10149 7月 13 2012 UserDictionaryProvider.apk
-rw-rw-rw- 1 1000 root 19650 7月 13 2012 VideoPlayer.apk
-rwxr--r-- 1 1000 1000 474474 9月 19 2012 VideoTester.apk
# ls -l pd100s-firmware/system/app/
合計 121388
-rw-rw-rw- 1 1000 root 143193 12月 3 11:39 AccountAndSyncSettings.apk
-rw-rw-rw- 1 1000 root 18781 12月 3 11:39 ApplicationsProvider.apk
-rwxrw-rw- 1 1000 root 2325019 12月 3 11:39 CanonEPP220.apk
-rw-rw-rw- 1 1000 root 65570 12月 3 11:39 CertInstaller.apk
-rw-rw-rw- 1 1000 root 11747 12月 3 11:39 DefaultContainerService.apk
-rw-rw-rw- 1 1000 root 106641 12月 3 11:39 Development.apk
-rw-rw-rw- 1 1000 root 74477 12月 3 11:39 DownloadProvider.apk
-rw-rw-rw- 1 1000 root 97041 12月 3 11:39 FileManager.apk
-rwxrw-rw- 1 1000 root 16243 12月 3 11:39 GetIpAddress.apk
-rw-rw-rw- 1 1000 root 12295 12月 3 11:39 HTMLViewer.apk
-rw-rw-rw- 1 1000 root 393634 12月 3 11:39 MarvellScreenController.apk
-rw-rw-rw- 1 1000 root 49797 12月 3 11:39 MediaProvider.apk
-rw-r--r-- 1 root root 110694637 3月 14 15:11 Omoject-release.apk
-rw-r--r-- 1 root root 6923585 3月 14 15:11 OpenWnnControlPanelJAJP-release.apk
-rw-rw-rw- 1 1000 root 74211 12月 3 11:39 PackageInstaller.apk
-rw-rw-rw- 1 1000 root 3637 12月 3 11:39 Provision.apk
-rw-rw-rw- 1 1000 root 2531112 12月 3 11:39 Settings.apk
-rw-rw-rw- 1 1000 root 38162 12月 3 11:39 SettingsProvider.apk
-rw-rw-rw- 1 1000 root 10149 12月 3 11:39 UserDictionaryProvider.apk
-rw-rw-rw- 1 1000 root 19650 12月 3 11:39 VideoPlayer.apk
-rwxrw-rw- 1 1000 root 474474 12月 3 11:39 VideoTester.apk
#
どんなフォントを収録してるのかな・・・
# ls -l pd100s-firmware/system/fonts/
合計 20052
-rw-rw-rw- 1 1000 root 6880 12月 3 11:39 Clockopia.ttf
-rw-rw-rw- 1 1000 root 191032 12月 3 11:39 DroidSans-Bold.ttf
-rw-rw-rw- 1 1000 root 190044 12月 3 11:39 DroidSans.ttf
-rw-rw-rw- 1 1000 root 35908 12月 3 11:39 DroidSansArabic.ttf
-rw-rw-rw- 1 1000 root 3640264 12月 3 11:39 DroidSansFallback.ttf
-rw-rw-rw- 1 1000 root 23076 12月 3 11:39 DroidSansHebrew.ttf
-rwxrw-rw- 1 1000 root 6234084 12月 3 11:39 DroidSansJapanese.ttf
-rw-rw-rw- 1 1000 root 117072 12月 3 11:39 DroidSansMono.ttf
-rw-rw-rw- 1 1000 root 36028 12月 3 11:39 DroidSansThai.ttf
-rw-rw-rw- 1 1000 root 184836 12月 3 11:39 DroidSerif-Bold.ttf
-rw-rw-rw- 1 1000 root 189916 12月 3 11:39 DroidSerif-BoldItalic.ttf
-rw-rw-rw- 1 1000 root 177176 12月 3 11:39 DroidSerif-Italic.ttf
-rw-rw-rw- 1 1000 root 172532 12月 3 11:39 DroidSerif-Regular.ttf
-rwxrw-rw- 1 1000 root 9247356 12月 3 11:39 uzura.ttf
#
うずらフォント ver1.00が入ってますね。
(うずらフォント使いますと、ちゃんと連絡入れたのかな?)
で・・・デバイス固有っぽいファイルを探すと、「init.mv88de3010.rc」と「/system/etc/init.mv88de3010.sh」というのを発見。
PD-100とPD-100Sの差異は、ほぼ無し(init.mv88de3010.rcがPD-100Sだと「stop dhcpcd_ra0」のところがPD-100だと「stop dhcpcd」というところだけ)
cat pd100s-firmware/init.mv88de3010.rc
on early-init
device /dev/pftimer 0666 root root
device /dev/MV_CC_ICC 0666 root root
device /dev/MV_CC_SHM0 0666 root root
device /dev/MV_CC_SHM1 0666 root root
device /dev/MV_CC_SHM2 0666 root root
on early-boot
mkdir /mnt/DMS 0777 root root
# mkdir /mnt/samba 0777 root root
# mkdir /data/dms 0777 root root
# mount tmpfs tmpfs /data/dms
# symlink /dev/block/sr0 /dev/scd0
setprop ro.radio.noril no
setprop battery.fake_ac true
setprop power.fake_power true
setprop wifi.interface ra0
on boot
symlink /dev/block/mtdblock0 /dev/mtdblock0
symlink /dev/block/mtdblock1 /dev/mtdblock1
symlink /dev/block/mtdblock2 /dev/mtdblock2
symlink /dev/block/mtdblock3 /dev/mtdblock3
symlink /dev/block/mtdblock4 /dev/mtdblock4
symlink /dev/block/mtdblock5 /dev/mtdblock5
symlink /dev/block/mtdblock6 /dev/mtdblock6
symlink /dev/block/mtdblock7 /dev/mtdblock7
symlink /dev/block/mtdblock8 /dev/mtdblock8
symlink /dev/block/mtdblock9 /dev/mtdblock9
symlink /dev/mtd/mtd0 /dev/mtd0
symlink /dev/mtd/mtd1 /dev/mtd1
symlink /dev/mtd/mtd2 /dev/mtd2
symlink /dev/mtd/mtd3 /dev/mtd3
symlink /dev/mtd/mtd4 /dev/mtd4
symlink /dev/mtd/mtd5 /dev/mtd5
symlink /dev/mtd/mtd6 /dev/mtd6
symlink /dev/mtd/mtd7 /dev/mtd7
symlink /dev/mtd/mtd8 /dev/mtd8
symlink /dev/mtd/mtd9 /dev/mtd9
symlink /dev/mtd/mtd_mv /dev/mtd_mv
service mv88de3010_init /system/etc/init.mv88de3010.sh
oneshot
#service mv88de3010_bdp /system/etc/init.bdp.sh
# oneshot
service wpa_supplicant /system/bin/wpa_supplicant \
-Dwext -ira0 -c/data/misc/wifi/wpa_supplicant.conf
user root
group root system inet keystore
disabled
oneshot
service dhcpcd_ra0 /system/bin/dhcpcd -d ra0
group system wifi dhcp
disabled
oneshot
on property:init.svc.wpa_supplicant=stopped
stop dhcpcd_ra0
#service flash /system/etc/init.flash.sh
# oneshot
service sm_daemon /sbin/sm_tool -d
oneshot
service buffalo_init /system/etc/init.buffalo.sh
oneshot
service wdt_process /sbin/process_wdt
oneshot
#service samba /sbin/cifs.sh
# oneshot
#service symlinker /sbin/dbread.sh
# oneshot
service autoscript /sbin/autoscript
oneshot
service automount /sbin/automount
oneshot
# cat pd100s-firmware/system/etc/init.mv88de3010.sh
#!/system/bin/sh
mount -t tmpfs nodev /data/system/wpa_supplicant
busybox cp -R /etc/dms/* /data/dms/
mkdir /data/factory_setting
mount -t yaffs2 -o inband-tags,no-hack,ro /dev/mtdblock9 /data/factory_setting
busybox ethconfig -n -d /dev/mtd4 /data/factory_setting/MAC_ADDR
netcfg eth0 dhcp
setprop net.dns1 `getprop net.eth0.dns1`
setprop net.dns2 `getprop net.eth0.dns2`
#djmount -o default_permissions -o allow_other /mnt/DMS
#
いまのところ、収集できた範囲で考えると・・・
・MARVELL社のARMADA 1000/88DE3010 HD Media Processor SoC採用のAndroid 2.2ボックス。
CPUはARMv7-A採用のSheevaコア 1GHz * 2
・PD-100とPD-100Sは基本は同じで、ハードウェア的な違いとしては
PD-100Sでは無線LAN USBアダプタが標準添付されている、というぐらい?
ただ、そうだとすると、PD-100のアウトレット品がたくさんでてる理由とか
PD-100とPD-100Sとでfirmware versionが違う、というあたりの説明がつけにくい。
オンボードメモリサイズとか、SDカードリーダ部分のチップが置き換わっている可能性あり?
・Omoject.apk、Omoject-release.apkがメインとなるアプリの模様。
だいぶサイズが変わってるので、機能差がそりゃあるだろうな、という感じ。
アプリ構成からすると、このアプリがホームアプリも兼用しており、基本的にはこの世界脱出はできないような雰囲気がある。
・他のAndroid TV-BOXからfirmwareを流用できないか、というあたりでは
initrcなどに含まれていたキーワードを元に探したところ、Meteorit MMB-322.HDTVってのが近いような雰囲気。
ただ、MMB-322のfirmware updaterは形式が全然違うので、流用は難しそう。
↓は、バッファローダイレクトのリユース品です。