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
$&#91;/shell&#93;
Androidのバージョンは「JZO54K」なので「Android 4.1.2」
「ro.board.platform=jz4780」って、このデバイスはjz4775じゃないのかなぁ?と思ったのですが、
おそらくは「<a href="http://www.ingenic.cn/cn/cn/industryinfo.php?id=986&fid=801">Android-JB(4.1.2) JZ4780/4775 新版本发布</a>」で配布されているソースコードがベースになるので、共通化されてるのかな?とか感じました。
で・・・
[shell]$ 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領域として使用している。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>