中国製GoProモドキがAndroidで動いているようなので調べてみた

自転車に取り付けたいと思い、中国製のGoProモドキを$47で買ってみた。

Original Elephone ELE Explorer 4K Ultra HD WiFi Action Camera  -  SILVER
http://www.gearbest.com/action-cameras/pp_265287.html

セットアップしているとふとUIからして、Androidの4.xっぽいテーマのダイアログが表示されることに気づき、
もしや？と思いPCにぶっ挿してみた。すると`PC転送モード`のときはADBで認識されているようだ。
Androidの開発している人間として、放ってはおけない！
すかさずシェルに入ってみる

```bash
$ adb shell
root@camdroid:/ #
```

すんなりとrootで入れてしまった。
こんなのでいいのか...
とりあえずディレクトリ構成を見てみた。

```bash
root@camdroid:/ # ls -l
lrwxrwxrwx root     root              2017-03-16 10:33 d -> /sys/kernel/debug
drwxrwx--x compass  compass           2017-03-16 10:33 data
-rw-r--r-- root     root          116 1970-01-01 00:00 default.prop
drwxr-xr-x root     root              2017-03-16 10:33 dev
lrwxrwxrwx root     root              2017-03-16 10:33 etc -> /system/etc
-rwxr-x--- root     root       113608 1970-01-01 00:00 init
-rwxr-x--- root     root         2487 1970-01-01 00:00 init.goldfish.rc
-rwxr-x--- root     root         4124 1970-01-01 00:00 init.rc
-rwxr-x--- root     root         2214 1970-01-01 00:00 init.sun8i.rc
-rwxr-x--- root     root         2224 1970-01-01 00:00 init.sun8i.usb.rc
drwxrwxr-x root     root              2017-03-16 10:33 mnt
dr-xr-xr-x root     root              1970-01-01 00:00 proc
drwx------ root     root              2016-12-01 03:03 root
drwxr-x--- root     root              1970-01-01 00:00 sbin
dr-xr-xr-x root     root              2017-03-16 10:33 sys
drwxr-xr-x 1025     radio             2016-12-19 10:09 system
-rw-r--r-- root     root          272 1970-01-01 00:00 ueventd.goldfish.rc
-rw-r--r-- root     root         4087 1970-01-01 00:00 ueventd.rc
-rw-r--r-- root     root         1104 1970-01-01 00:00 ueventd.sun8i.rc
lrwxrwxrwx root     root              2017-03-16 10:33 vendor -> /system/vendor
```

やはり形は変わってもAndroid。見慣れた名前がずらり。
`build.prop`を確認してみる

```bash
root@camdroid:/ # cat /system/build.prop                                       
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JDQ39
ro.build.display.id=crane_sl603tsfx-eng 4.2.2 JDQ39 eng.quhongbo.20161219.180947 test-keys
ro.build.version.incremental=eng.quhongbo.20161219.180947
ro.build.version.sdk=17
ro.build.version.codename=REL
ro.build.version.release=4.2.2
ro.build.date=Mon Dec 19 18:09:57 CST 2016
ro.build.date.utc=1482142197
ro.build.type=eng
ro.build.user=quhongbo
ro.build.host=tf-srv01
ro.build.tags=test-keys
ro.product.model=SoftwinerEvb
ro.product.brand=softwinners
ro.product.name=crane_sl603tsfx
ro.product.device=crane-sl603tsfx
ro.product.board=pluto
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=unknown
ro.wifi.channels=
ro.board.platform=exDroid
# ro.build.product is obsolete; use ro.product.device
ro.build.product=crane-sl603tsfx
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=crane_sl603tsfx-eng 4.2.2 JDQ39 eng.quhongbo.20161219.180947 test-keys
ro.build.fingerprint=softwinners/crane_sl603tsfx/crane-sl603tsfx:4.2.2/JDQ39/eng.quhongbo.20161219.180947:eng/test-keys
ro.build.characteristics=sdv
# end build properties

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.feature.http=1
sys.usb.config=mass_storage,adb
ro.font.scale=1.0
ro.hwa.force=true
rw.logger=0
ro.sys.bootfast=true
ro.cdr.debug=false
ro.aw.sensordiscard=8
ro.kernel.android.checkjni=1
net.bt.name=CamLinux
dalvik.vm.stack-trace-file=/data/anr/traces.txt
```

どうやら`Android 4.2.2(JDQ39)`をベースに作られているようだ。

ふとここで思いついた。
このアクションカム、怪しい日本語が頻繁に見受けられるので修正してしまえ
そう思って言語関連ファイルがどこにあるのか探してみた

まずは無難に`/data`に移動

```bash
root@camdroid:/data # ls -l
-rw-r--r-- radio    radio       12538 2016-08-25 09:28 320x240.cfg
-rw-r--r-- radio    radio        9053 2016-05-26 03:13 320x480.cfg
drwxr-x--x root     root              2017-03-16 10:27 local
-rw------- root     root         1005 2017-03-16 10:33 menu.cfg
drwxrwx--t system   misc              2015-01-26 01:03 misc
drwx------ root     root              2017-03-16 10:33 property
-rw------- root     root         4096 2017-03-16 10:33 sunxi.db
```

ここからはAPKとかできれいに配置ではなく直接ファイル置き場になってる
そして`misc`にはWiFi関連のデータが格納されている
cfgファイル、dbファイルなどがあったのですかさず中身を覗き見

menu.cfg

```bash
root@camdroid:/data # cat menu.cfg                                             
[switch]
power_on_record=0
record_sound=0
time_water_mark=0
photo_water_mark=0
awmd=0
mount=0
driving_mode=0
wifi=0
smartalgorithm=0
alignline=0
keytone=1
standby_mode=0
Image_rotation=0
LED_lights=1

[defaultlicense]
current=0
position=

[language]
current=3
count=14

以下略
```

320x240.cfg

```bash
root@camdroid:/data # cat 320x240.cfg                                          

[rect_screen]
x=0
y=0
w=320
h=240
#TODO
[rect_record_preview1]
x=0
y=0
w=320
h=240
#TODO
[rect_record_preview2]
x=300
y=22
w=180
h=102

[bkgroud_pic]
current=0
icon0=/system/res/topbar/windowPic_bkgroud.png

############### 480 X 22 #####################
###################### below is status's configuration #####################
[status_bar]
x=0
y=0
w=320
h=30
fgc_widget=0xFFDCDCDC
bgc_widget=0x802B2B2B
#bgc_widget=0xFF000000

[status_bar_label1]
x=20
y=7
w=200
h=16
以下略
```

画像などは、`/system/res`以下を参照しているが、テキストに関する設定はなかった。
そしてTODOをそのまま放置しているのを見て、いいのかとツッコミを入れておく。
/dataディレクトリでは、UIの座標や設定値を保持しているだけのようだ。

参照先の/system/resディレクトリを追いかけてみる

```bash
root@camdroid:/system/res # ls -l
drwxr-xr-x 1025     radio             2016-12-19 10:09 cfg
drwxr-xr-x 1025     radio             2016-12-19 10:09 font
drwxr-xr-x 1025     radio             2016-12-19 10:09 lang
drwxr-xr-x 1025     radio             2016-12-19 10:09 menu
drwxr-xr-x 1025     radio             2016-12-19 10:09 others
drwxr-xr-x 1025     radio             2016-12-19 10:09 topbar
```

lang発見！

```bash
root@camdroid:/system/res/lang # ls -l
-rw-r--r-- 1025     radio        3619 2016-12-19 10:09 dutch.bin
-rw-r--r-- 1025     radio        3261 2016-12-19 10:09 en.bin
-rw-r--r-- 1025     radio        4230 2016-12-19 10:09 franch.bin
-rw-r--r-- 1025     radio        3612 2016-12-19 10:09 german.bin
-rw-r--r-- 1025     radio        3808 2016-12-19 10:09 italian.bin
-rw-r--r-- 1025     radio        4280 2016-12-19 10:09 jpn.bin
-rw-r--r-- 1025     radio        3787 2016-12-19 10:09 korean.bin
-rw-r--r-- 1025     radio        5441 2016-12-19 10:09 lang_label.id
-rw-r--r-- 1025     radio        3704 2016-12-19 10:09 polish.bin
-rw-r--r-- 1025     radio        4221 2016-12-19 10:09 portuguese.bin
-rw-r--r-- 1025     radio        5929 2016-12-19 10:09 russian.bin
-rw-r--r-- 1025     radio        3858 2016-12-19 10:09 spanish.bin
-rw-r--r-- 1025     radio        5860 2016-12-19 10:09 thai.bin
-rw-r--r-- 1025     radio        2899 2016-12-19 10:09 zh-CN.bin
-rw-r--r-- 1025     radio        2973 2016-12-19 10:09 zh-TW.bin
```

b、binだと...とりあえず中身を見てみる

```bash
root@camdroid:/system/res/lang # cat jpn.bin                                   
ビデオプレビューの設定
フォト設定
再生プレビュー設定
システム設定
駐車場の監視
駐車監視感度
レコードの音
ボリューム
キー音
光周波数
メモリカード
遅延シャットダウン
フォーマット
言語
日付
自動スクリーンセーバー
スタンバイモード
ファームウェアバ
出荷時設定にリセット
カメラフリップ
車載モード
Wi-Fi
画像回転
LEDインジケーターライト
OKボタン押しされ
ビデオ解像度
ビデオ品質
画素設置
画質
ループ録画
缩时収録
スロー撮影
ホワイトバランス
コントラスト
暴露
パワーオンビデオ
写真透かし
タイム透かし
動き検出
ナンバープレートの透かし
知的アルゴリズム
駐車場の監視
オフ
低い
ミドル
高い
駐車監視感度
オフ
低い
ミドル
高い
音量
高い
の中で
低い
光周波数
自動
50Hz
60Hz
メモリカード
用量/総量
SOSファイルを占用する
カードスピードテスト
言語
简体中文
繁體中文
English
日本語
한국의
русский
Deutsch
français
italiano
español
polski
nederlandse
português
ไทย
自動スクリーンセーバー
10秒
20秒
30秒
オフ
ビデオ解像度
4K 15FPS
2.7K 30FPS
1080P 60FPS
1080P 30FPS
720P  120FPS
720P  60FPS
720P  30FPS
缩时収録
オフ
0.5s
1s
2s
5s
10s
30s
60s
スロー撮影
1080P 60FPS
720P 120FPS
ビデオ品質
一般的な
はい
スーパー良い
画素設置
2M
5M
8M
12M
16M
画質
一般的な
はい
スーパー良い
タイミング
オフ
3S
5S
10S
20S
自動撮影
オフ
3S
10S
15S
20S
30S
移動追跡
オフ
3P/S
5P/S
10P/S
ループ録画
オフ
2分
3分
5分
ホワイトバランス
自動
晴れた日
曇りの日
白熱ランプ
蛍光
遅延シャットダウン
1分
3分
5分
オフ
コントラスト
0
1
2
3
4
5
暴露
-3
-2
-1
0
1
2
3
確認する
キャンセル
フォーマット
確認は、メモリ
フォーマット...
出荷時設定にリセット
確定して出荷時の設定にリセットしますか?
スクリーンショットを保存しています...
警告
プロンプト
TFカードが検出されず、TFカードを挿入！
不十分なTFカード収納スペース！
書式設定、TFカードは使用できません！
日付
/
/

:
:

削除
このファイルを削除しますか？
密告
シャットダウンを確認してください！
U ディスクモード
USB ストレージ デバイスをオフ
充電モード
電池があふれる！
低消費電力は、すぐにシャットダウンします！
シャットダウン後10S！
今後のシャットダウン！
Sは自動的以内にシャットダウンします動作していない
S電源スタンバイモードに入ってない
ビデオの再生に失敗しました！
ファイルリストは空です！
SOSレコードが発生しました
WiFi接続は成功です
各衝突時間
少々お待ちください、開いているWifi
WIFI情報
WIFI名称:
WIFIパスワード:
上キーを押してWIFIを終了
ファイルのロックが解除さ！
ファイルが検出されたアップグレード、アップグレードするかどうか?
で撮影...
TF カードのファイル システム形式が、要件を満たしていない、フォーマットしますか。
ファイルがロックされ、削除禁止されています！
ファイルがロックされています！
ファイルがロック解除されています！
京湘津鄂沪粤渝琼冀川晋贵辽云吉陕黑甘苏青浙台皖藏闽蒙赣桂鲁宁豫新港澳
1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ
パソコン・カメラ
TFは挿入
TFは抜く
進行カード速テストしてカードを電源!
読み/書き速度：
外部電源を抜いた後、15は自動的に停止し、外部電源を抜いてください
外部電源を抜いた後、30は自動的に停止し、外部電源を抜いてください
外部電源を抜いた後、60秒は自動的に停止し、外部電源を抜いてください
キャンセルする
フォーマット完成
書式は、しばらくお待ちください！

ファームウェア情報
製品タイプ:
バージョン:
更新時間:
製造者:
Elephone
```

おっ、ただのテキストファイル！
これなら編集できそうです。

それにしてもファンキーな日本語ですね。

* `SOSレコードが発生しました` : このメッセージはとても深刻そう
* `電池があふれる！` : 爆発しそうで怖い

後日これらを修正して反映してみようと思います。