Author Archives: osakanataro - Page 36

SmartQ Z Watchのfirmware探索


SmartQ Z Watchのfirmware updaterをダウンロードしたので中身を見てみた。

入手元
・中国語版「Z Watch firmware ダウンロードページ
 2013/11/11現在の最新は、11/07公開のV1.82013/11/15公開のV1.9が最新。
 ダウンロードの際は「电信下载」の方のリンクをクリックのこと。
 ちなみにURLは「 http://d2.smartdevices.com.cn/files/SmartQ_Z1_V1.9/update.zip

同じくJZ4775採用のGEAK Watchのfirmwareを探してみると
・GEAK公式フォーラム「【果壳公告】GEAK Watch版本升级和信息发布主页(11月07日)
同じく11/07に「GEAK WATCH version 1095」というバージョンが出ている模様。
こちらは、パソコンもしくはGEAK Watch本体から直接ファイルをダウンロードさせる形式である模様。

ただ、「SmartQ Z Watchの更新履歴」と「GEAK Watchの更新履歴」を比べてみると似たようなタイミングで出てるような気がする・・・
いったい、どれくらいの関係なんだろうか???


で・・・SmartQ Z Watch用のupdate.zipを開いてみる。

$ unzip -l update.zip
Archive:  update.zip
signed by SignApk
  Length     Date   Time    Name
 --------    ----   ----    ----
      128  10-23-12 17:12   META-INF/com/android/metadata
   338708  10-23-12 17:12   META-INF/com/google/android/update-binary
     3356  10-23-12 17:12   META-INF/com/google/android/updater-script
  3315712  10-23-12 17:12   boot.img
   694784  10-23-12 17:12   mbr-xboot.bin
  4937728  10-23-12 17:12   recovery.img
    18069  10-23-12 17:12   system/app/ApplicationsProvider.apk
   207471  10-23-12 17:12   system/app/Bluetooth.apk
<略>
     5364  10-23-12 17:12   system/xbin/timeinfo
     1619  10-23-12 17:12   META-INF/com/android/otacert
    71058  10-23-12 17:12   META-INF/MANIFEST.MF
    71111  10-23-12 17:12   META-INF/CERT.SF
     1656  10-23-12 17:12   META-INF/CERT.RSA
 --------                   -------
172076186                   837 files
$

良くあるAndroidのupdate.zipと同じ形式。

update.zipでどんなことをやっているのかを確認。

$ cat META-INF/com/google/android/updater-script
assert(getprop("ro.product.device") == "s2122b" ||
       getprop("ro.build.product") == "s2122b");
show_progress(0.500000, 0);
format("ext4", "EMMC", "/dev/block/mmcblk0p1", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p1", "/system");
package_extract_dir("system", "/system");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("mksh", "/system/bin/sh");
symlink("readbattery", "/system/bin/creat_curve",
        "/system/bin/update_curve");
symlink("toolbox", "/system/bin/cat", "/system/bin/chmod",
        "/system/bin/chown", "/system/bin/cmp", "/system/bin/date",
        "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg",
        "/system/bin/getevent", "/system/bin/getpartionblkcount",
        "/system/bin/getprop", "/system/bin/hd", "/system/bin/id",
        "/system/bin/ifconfig", "/system/bin/iftop", "/system/bin/insmod",
        "/system/bin/ioctl", "/system/bin/ionice", "/system/bin/kill",
        "/system/bin/ln", "/system/bin/log", "/system/bin/ls",
        "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5",
        "/system/bin/mkdir", "/system/bin/mount", "/system/bin/mv",
        "/system/bin/nandread", "/system/bin/netstat",
        "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
        "/system/bin/ps", "/system/bin/r", "/system/bin/reboot",
        "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir",
        "/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop",
        "/system/bin/sendevent", "/system/bin/setconsole",
        "/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd",
        "/system/bin/start", "/system/bin/stop", "/system/bin/sync",
        "/system/bin/top", "/system/bin/touch", "/system/bin/umount",
        "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops",
        "/system/bin/wipe");
set_perm_recursive(0, 0, 0755, 0755, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 2000, 04755, "/system/bin/catkmsg");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth/bt.sh");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 0755, "/system/xbin/tcpdump");
show_progress(0.200000, 0);
show_progress(0.200000, 10);
package_extract_file("boot.img", "tmp/boot.img");
write_raw_image("tmp/boot.img", "ndboot");
package_extract_file("mbr-xboot.bin", "tmp/mbr-xboot.bin");
write_raw_image("tmp/mbr-xboot.bin", "uboot");
show_progress(0.100000, 0);
package_extract_file("recovery.img", "tmp/recovery.img");
write_raw_image("tmp/recovery.img", "recovery");
show_progress(0.100000, 0);
unmount("/system");
$

まぁ、普通。
開発名は「s2122b」というらしい。

$ cat system/build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JZO54K
ro.build.display.id=V1.8-2013-11-06
ro.build.version.incremental=eng.wqkong.20131106.153814
ro.build.version.sdk=16
ro.build.version.codename=REL
ro.build.version.release=4.1
ro.build.date=2013年 11月 06日 星期三 15:39:13 CST
ro.build.date.utc=1383723553
ro.build.type=eng
ro.build.user=wqkong
ro.build.host=wqkong-desktop
ro.build.tags=dev-keys
ro.product.model=Z1
ro.product.brand=Ingenic
ro.product.name=s2122b
ro.product.device=s2122b
#ro.product.board=s2122b
ro.product.board=s2122b
ro.product.cpu.abi=mips
ro.product.cpu.abi2=armeabi-v7a
ro.product.manufacturer=Karbonn
ro.product.locale.language=zh
ro.product.locale.region=CN
ro.wifi.channels=13
ro.board.platform=jz4780
# ro.build.product is obsolete; use ro.product.device
ro.build.product=s2122b
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=s2122b-eng 4.1 JZO54K eng.wqkong.20131106.153814 dev-keys
ro.build.fingerprint=Ingenic/s2122b/s2122b:4.1/JZO54K/eng.wqkong.20131106.153814:eng/dev-keys
ro.build.characteristics=tablet
# end build properties
#
# system.prop for generic sdk
#
ro.opengles.version = 131072
rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyM1
mobiled.libpath=/system/lib/libmobiled.so
#
# H/W composition disabled
#
debug.sf.hw=1
#timezone
persist.sys.timezone=Asia/Shanghai
#--for camera--s-
#ro.board.camera.picture_upscale=true
#ro.board.camera.upscale_id=0
#ro.board.camera.sensor_w=640
#ro.board.camera.sensor_h=480
#ro.board.camera.upscale_dst_w=1600
#ro.board.camera.upscale_dst_h=1200
#--camera--e-
#board config
ro.board.hdmi.support=false
ro.board.hdmi.device= HDMI LCD SYNC
ro.board.hdmi.hotplug.support=true
ro.board.tvout.support=false
ro.board.hasethernet=ethernet
ro.board.haspppoe=pppoe
testing.mediascanner.skiplist=/storage/host-udisk/,/storage/udisk/
dalvik.vm.heapsize=60m
ro.sf.lcd_density=160
ro.sf.hwrotation=180
# sync app use
watch_device=yes
#long press back key will show this global action dialog.
#value >  0 means long press time(ms)
#value <= 0, means dialog will not show by press back key.
keyback_long_press_time=1000
#for system rom lower
#cut webcore
ro.systemcut.webcore=false
# device info related
ro.partition.num=4
ro.devid.bytes=13
#ro.wifimac.offset=512
#ro.wifimac.bytes=17
ro.btmac.offset=1024
ro.btmac.bytes=17
ro.devinfo.enable=true
# for ft5216
debug.velocitytracker.strategy=int1
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.carrier=wifi-only
ro.kernel.android.checkjni=0
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
$

Androidのバージョンは「JZO54K」なので「Android 4.1.2」
「ro.board.platform=jz4780」って、このデバイスはjz4775じゃないのかなぁ?と思ったのですが、
おそらくは「Android-JB(4.1.2) JZ4780/4775 新版本发布」で配布されているソースコードがベースになるので、共通化されてるのかな?とか感じました。

で・・・

$ ls -l system/xbin/su
-rw-rw-r-- 1 osakanataro user 137356 10月 23  2012 xbin/su
$

・・・su在中ですかw
SuperUser.apkとかはsystem/appには見当たらなかったので、必要に応じて別途ダウンロードが必要そうです。

$ ls system/app
ApplicationsProvider.apk     Music.apk
Bluetooth.apk                MusicFX.apk
Calendar.apk                 NetworkLocation.apk
CalendarProvider.apk         PackageInstaller.apk
CertInstaller.apk            Phone.apk
Contacts.apk                 Provision.apk
ContactsProvider.apk         Settings.apk
DefaultContainerService.apk  SettingsProvider.apk
DeskClock.apk                SleepingAnalysis.apk
DownloadProvider.apk         SmartLauncher.apk
DownloadProviderUi.apk       SmartQWatchHealth.apk
DrmProvider.apk              SoundRecorder.apk
FileManager.apk              SystemUI.apk
GoogleServicesFramework.apk  TelephonyProvider.apk
IndroidSyncWatch.apk         UserDictionaryProvider.apk
IndroidWeather.apk           WatchWidget.apk
MediaProvider.apk            cn.yunzhisheng.assistant.smartdevices.apk.bak
Mms.apk                      com.tencent.mm.apk.bak
$

とりあえず最小限だけインストールされている、というような感じ。
「cn.yunzhisheng.assistant.smartdevices.apk.bak」「com.tencent.mm.apk.bak」はなぜ「.apk.bak」なんて形でファイルが残っているんだろうか?
消してしまえない理由でもあるんだろうか???

$ ls system/fonts
AndroidClock.ttf                 DroidSerif-Regular.ttf
AndroidClock_Highlight.ttf       Roboto-Bold.ttf
AndroidClock_Solid.ttf           Roboto-BoldItalic.ttf
AndroidEmoji.ttf                 Roboto-Italic.ttf
Clockopia.ttf                    Roboto-Light.ttf
DroidNaskh-Regular-SystemUI.ttf  Roboto-LightItalic.ttf
DroidNaskh-Regular.ttf           Roboto-Regular.ttf
DroidSansArmenian.ttf            RobotoCondensed-Bold.ttf
DroidSansFallback.ttf            RobotoCondensed-BoldItalic.ttf
DroidSerif-Bold.ttf              RobotoCondensed-Italic.ttf
DroidSerif-BoldItalic.ttf        RobotoCondensed-Regular.ttf
DroidSerif-Italic.ttf
$

「AndroidEmoji.ttf」と絵文字は入っているものの、日本語対策は特になく「DroidSansFallback.ttf」のみ。
なので、いわゆる中華表示になる模様。

$ ls system/etc
NOTICE.html.gz              h264_cavlc_p1.bin   permissions
audio_effects.conf          h264_p1.bin         ppp
audio_policy.conf           hosts               recovery.fstab
bluetooth                   init.goldfish.sh    rv9_p1.bin
dbus.conf                   jzmpeg2_p1.bin      security
dhcpcd                      launcher_flag       system_fonts.xml
disk_preparing.sh           media_codecs.xml    vc1_p1.bin
event-log-tags              media_profiles.xml  vold.fstab
excluded-input-devices.xml  mkshrc              wifi
fallback_fonts-ja.xml       modems-conf.xml     x264_p1.bin
fallback_fonts.xml          mpeg4_p1.bin        zram.sh
firmware                    msmpeg4_p1.bin
$

H.264, MPEG4などの動画関連の補助があるらしい。
「zram.sh」の中で、メインメモリから256MBを圧縮機能ありのラムディスクとした上で、そこをswap領域として使用している。

MIPS系CPU JZ4775搭載Android腕時計 SmartQ Z Watch


中華タブレットの初期製品で有名だったSmartQシリーズに、腕時計型のAndroidが出ました。
「SmartQ Z Watch」です。

これも、GEAK Watchと同じくIngenicのMIPS系CPUの「JZ4775」を搭載している。
というか、姉妹製品なんじゃないかという気も・・・

・中国語版「製品ページ
・英語版「製品ページ

SmartQ Z Watch(「Z1」という記載もちらほら)は単独でもAndroidとして使うことができるが、親機となるAndroid端末とBluetooth接続で使用するような感じで使うのが、想定されている使い方だと思われる。
いくつかのレビューを見ると、バッテリーの持ちはそんないいもんではない感じで、12時間ぐらいらしい。

英語版ページは必要なものがなかったりするので、中国語版ページにアクセスすることがほぼ必須。
例えば、重要なあたりだと下記のようなものがある。

・中国語版「Z Watch firmware ダウンロードページ
 2013/11/11現在の最新は、11/07公開のV1.8
 ダウンロードの際は「电信下载」の方のリンクをクリックのこと。
 ちなみにURLは「 http://d2.smartdevices.com.cn/files/SmartQ_Z1_V1.8/update.zip
 update.zipをZ Watchにコピーして、良くあるAndroidっぽくfirmwareアップデートを行う感じ。

・中国語版「Z Watch 助手
 Android端末にインストールしてZ Watchと連携をとるためのソフト。
 Play Storeにはなくて、上記URLからapkファイルを入手する必要がある。
 このソフトからZ Watchのfirmwareアップデートを実施することも可能。

・中国語版「開発者向けページ
 先週SDKが公開された(「智器可穿戴SDK发布 Z Watch受开发者狂热追捧」)
 SDKダウンロードには、「開発者だったら、これくらいの問題とけるよね?」的な感じの
 プログラミングクイズを突破する必要がある。
 現状、マニュアル等は全部中国語

英語圏のTABLE REPUBLICというサイトの「SmartQ Z Watch専用フォーラム」に
firmwareのバージョンアップ履歴とかバージョンアップ方法
SDKまわりの情報
とかいくつか情報が出ているので、こちらを見てもよいでしょう。

xda-forumは、まだ微妙なでだし。
Other SmartWach」というサブフォーラムの中の「SmartQ Z smart watch」というスレッドがあるぐらい。

SmartQ Z Watch 赤

SmartQ Z Watch 青

SmartQ Z Watch 黒

Nimble Storageについていろいろ調べたこと 2013/11/08


vForum2013 TOKYOにNimble Storageが出てたので、いろいろ確認してみた。
あと、マニュアルも入手したので、そこで調べた疑問点も列挙してある。


・海外事例を見るとパフォーマンス増強のために
 コントローラアップグレードがあるようだが
 日本でも提供するのか?

日本でも提供する予定だが、提供方法に関して詳細が決まっていない。

なお、アップグレードには2種類ある。
・Scale performance
・Scale cache

「Scale performance」はコントローラのアップグレードで、これは、マザーボードを丸ごと上位機種のものに入れ替えることになる。
Nimble Storageは「CS2x0用CPUを1つ積んだマザー」と「CS4x0用CPUを2つ積んだマザー」がある。
このため、「Scale performance」が適用できるものはCS2x0シリーズのみとなり、アップグレード後は「CS4x0」になる。
片コントローラずつ交換することでオンライン交換が可能。

「Scale cache」はSSDの容量増加である。
Nimble Storageでは、SSDを4本使用している。
この4本のSSDを交換し、容量を増加させることでパフォーマンスを上げる。
交換し、一時的にReadパフォーマンスが劣化するが、オンラインのままで行うことができる。
ちなみにSSDはslot7~10にあるが、slot7から順に交換する必要があるらしい。


・「Scale performance」の効能は?
CPUリソースや搭載メモリ(DRAM)が増加することにより、ランダムI/O・シーケンシャルI/Oのスループット増加が見込める。
いろんなボトルネック要素に対して効果がある。

・「Scale cache」の効能は?
Nimble Storageでは、SSDはRead cache目的で利用している。
このため、SSD容量の増加は、よく使われるデータが多い場合に有用である。
逆にSSDの利用率が低い場合は、効果が薄い。


・Firmwareってどんな感じなのか?

一般向けGAリリースの最新は2013/07/29リリースのv1.4.7.0。
(その1つ前は2013/04/12リリースのv1.4.6.0)
次期バージョンとして、v2.0系列の開発が進んでおり、2013/11/04にv2.0.5.0がリリースされているが、まだβ扱いとなっている。


・複数のNimble Storageを1つのように使うのってどんな感じなの?
実はv2.0からの新機能で「Group」という名称のクラスタ機能です。

1つのNimble Storageをマスターとして、その配下に他のNimble Storageをおく、というようなイメージになる。
システムの停止は必要となるが、運用中の「複数のNimble Storage」または「複数のGroup」を、ディスクの中身はそのままに統合することもできる。

ちなみに管理画面上は下記の様になる。
nimble


・ボリュームの最大数は?
255個作成可能。

・snapshotの最大数は?
ボリューム毎で最大1000、システム全体で10000まで作成できる


・実現できるレプリケーションの種類は?
基本的には、1volume→1volumeの内容丸ごとコピーのレプリケーション。
帯域制限をかけることもできる。
同期/非同期/スケジュール同期、といった設定はなく、「非同期」相当のみ。

・指定できる帯域制限の種類は?
月,火,水,木,金の8:00~19:00は、1Mbpsに制限
といった「曜日」と「時間帯」を指定した、帯域制限をかけることができる。
この指定は複数おこなうことができる。


・シリアルコンソールがある
アクティブ側のコントローラにのみシリアルコンソールログインができる。
初期設定やfirmwareアップデートをシリアルコンソールから行うことも可能。

中華系のLTEチップメーカのメモ書き


中華系でLTE対応チップセットを発表したりしているところをメモ書き程度においておく。

MediaTek (聯發科技, 联发科技)
「MT6590」というチップが登場するらしい。
TDD-LTE/FDD-LTEの両対応になるという噂
おおっぴらに発表はされていないものの、いろんな資料に姿を見せてはいる。
MediaTekはNTTドコモとLTEプラットフォーム関連のライセンス契約をしている。
(2010/07/21:台湾 MediaTek社とLTE対応通信プラットフォームのライセンス契約を締結)

Spreadtrum (展讯通信)
TDD-LTE向けに「SC9610」というチップが発表されている。
発表自体は2012年6月ということなんだけど、現状、どんな感じになっているのかはよく分からない。
製品ページ上は「The SC9610 is sampling now」という表示のままになっている。
会社自体はTD-SCDMA(中国専用3G)向けチップとGSM向けチップをメインとしているようだが、今年に入ってからWCDMA向けチップも取扱始めた。
今後、伸びてくる可能性があるところだと思っている。
なお、WCDMA向けチップSC7710採用のスマホは、日本登場予定。(Spreadtrum SC7710搭載のAndroidが日本公式発売!その名もfreetel!)

Leadcore Technology (联芯科技)
TDD-LTE向けにいくつか製品がある
スマホ向けLTEチップはまだないようで、WiFiルータとか用っぽい。
TD-SCDMA向けチップだけだったのだが、
この会社もSpreadtrum同様にTD-SCDMA(中国専用3G)向けチップとGSM向けチップだけだったのが、先月「
WCDMAテスター装置の入札公告」を出すなどWCDMA向けチップの開発と海外展開を狙っている模様。
今後の動向に注意。

CynanogenModがMediaTek端末をサポートという噂と各種ソースファイル


噂ですよ、うわさ。
しかも、実は1ヶ月遅れの話題です。
中華AndroidメーカのFAEAは、NFC対応とか、ビジネス向け、とか他のメーカにない感じの端末を出しています。
そこのフォーラムで2013/09/24にこんなスレがたちました。

[FaeaF2] [Official][ROM][CyanogMod][Development] in progress

CyanogenMod公式でFAEA F2という端末がサポートされるらしい、というあたりの話が書かれています。
ただ、11月7日現在のステータスでは、公表できる内容がないようです。

はたして、これは、単なる噂で終わるのか、それとも公式で発表されたりするのか
2014年にならないと決着しないような気もしますが、今後が注目されます。


で・・・検索ついでに出てきたMediaTek端末向けのソースファイルへのリンクを見つけたのでご紹介。

luckasfbさんの書き込みより

Please, stop the fluding. I can take a 99% of information about all of shared mediatek sources (kernel and platform).
1. Not had shared the android (platform) full sources for >=4.1
2. Had platform sources 2.3.6, 4.0.4 (full, but without sources of some proprietary binaries and libs)
android platform 2.3.6 (mt6513) or forks
android platform 2.3.6 (mt6515/75) or forks
android platform 4.0.4 (mt6517/77) or forks
partially sources for android platform 4.1.x (Motorola sources for mt6575/77). included HWComposer, SurfaceFlinger, HAL, audio, camera. But without RIL. Think after patch with its AOSP may be build worked MTK platform 4.1.x for 6575/77 without RIL

3. Not had another shared sources of mediatek platforms!!!
4. Kernel sources for mtk chipsets released:
Sony : Open source download for Xperia? C (S39h); software version 16.0.A.0.47 – mt6589
Oppo : https://github.com/oppo-source/R819-Kernel-Source-4.2 – mt6589
Acer : Need change the smartphones/tablet > Series > Products – mt6575/77/89
LGE : Models: Optimus L4II/5II (LGE440/445/450/455/460/470) – mt6575/77
Alcatel : http://sourceforge.net/projects/alcatel/files/ – mt6573/75/77/89
Gigabyte : – mt6577, – mt6575
Fly : – mt6573/75/77/89
Explay : – mt6575
Wikogeeks : – mt6577/89
BQ : Aquaris 4.5 /Aquaris5 – mt6577/89
Huawei : – mt6577
Lenovo : http://www.lenovomobile.com/opensource/release/ – mt6573/77/89
Asus : - mt6589
Motorola : - mt6575/77, very full sources!!!

つか、MotorolaでMediaTek端末なんてのがあったのか!