2010年9月29日水曜日

M002の新ファーム

漁船がぶつかったり、某ショップ店長が逮捕されたり。
中華タブレット周辺はいつもきな臭い(笑)
結論としては、中華ってやっぱ信用できん(爆)
まじめに付き合う相手じゃないって認識した(・ω・)

さておき(笑)

EKENのオフィシャルに
M002S_2.0.rar
っていう、新ファームが公開されているのに気が付いた。

2.0・・・・(゜-゜) SDK 2.0か・・・・

早速ダウンロードして、いつものDiff(笑)

まーたインストールイメージツリー構成が変わってるし。。。
ファイルの増減はともかく、ツリー構造変えられると追っかけるのが面倒なんだよなぁ・・・(´・ω・`)

で、見ると、framework周り、ドライバ、一部ライブラリが変更されてる。
アップデートとしてはそんなに大きな更新ではないように見えるけど、実際に動かさないとわかんないね。
ライブラリ関係で大きく変わってるっぽいのは、WMT関係のライブラリとカメラ関係。
EKENは更新するたびに良くなる傾向にあるので期待できるかな?

で、dm9601.ko なんていうドライバが増えてる。
有線のNICドライバなんだけど、こんなオプション出てたんだろうか?
USBにぶら下げる有線NICドライバと言うことは、外付けだよなぁ・・・・謎
まぁ、、、、
この辺のNICドライバは自家ビルドすればふつーに使えると思うけど。

そうか、有線NICとwifiが使えれば無線ブリッジとかに改造できそうだな。
Androidの皮はそのままで、裏でネットワークブリッジ。流行の情報家電をLAN接続するためのイーサコンバータもどきとか。
NICドライバビルドしまくってみよう(笑)
だれか、ネタ実験してw

そのうち、M001版が出るのかなぁ。
いじってみるには面白そうなだなぁ。

でも、


まさか、バックドアとか仕掛けられてないよねー(笑)

2010年9月17日金曜日

百超え

1.1.0のダウンロード数が、M001&M003 共に100を超えた(・ω・)
なーんも宣伝してない割には、使ってもらってるようでビックリ。
オールインワン手間要らずカスタムファームとは方向性が違うので、一般ウケはしないかなーと思いながらも、オレ仕様で使っていただけたら幸いデス(^^)

んで、まだゴソゴソいじってたりする(笑)
少し前に、宙ぶらりんだったBluetoothを埋め込んだ。
ハード的にはこれ以上、いじれない感じなので置いといて、

カーネル方面はドライバをいろいろ見ている。
ファイルシステムで追加するとしたらNTFSくらい。大容量の外付けHDDを付けるなら必要になるかなぁ。
他には、、、(゜-゜)ISOイメージのマウントとか?
でも、CDもDVDもシステム的に無縁なAndroidくんだから意味無いか。
データファイルを読むくらいなら使えるかも。
ってか、そもそも外付けのドライブをマウントできるのか試してない罠。

あと、、、
UVC以外のカメラドライバか、、、
持ってないから、テストができんな(´・ω・`)

他は、、、
wifiカードとか、、、
これまた、テストできんし、Android側でも制御してるからそこも変えにゃならん。

そもそも、必要なドライバを選択してinsmodする方法を考えるのが面倒くさいw
使わないのロードしてもメモリの無駄だし。
色々入ったドライバパックでも作って、使いたい人は自己責任でお好きなように(はぁと、ってパターンになっちゃうなぁ。

そう考えると、Androidはデバイスが固定された端末用のOSなんだなぁ。
汎用的に色々するなら、最低、ホットプラグとドライバモジュールの自動制御が無いと。
うーん、、、
現状はコレがネックだよなぁ。

2010年9月12日日曜日

書き忘れていたこと

相変わらず、B4が伸びている(´・ω・`)130て、、、
それと、ver1.1.0 ダウンロード数、M001対M003比が逆転してM003が多くなった。
うむ、時代はM003か(`・ω・´)

で、、、

コメント欄で突っ込まれて、
をぉ!そういえば、そうだったっ!!と、すっかり忘れていたことを思いだしたので表の記事にも書いておこうっと。

SDK 1.7.4までは、USBシリアルコンバータの pl2303 が ttyUSB0 に割り当てられるようになっていた。
しかし、SDK 1.9.1 からは、 ttyUSB5 に割り当てられるように変更されている。
cp2102 を利用するGPSレシーバーはこれまでどおり、ttyUSB0 にバインドされる。

そんなわけで、gpsinit.sh の記述に注意。

SDK 1.9.1 において、pl2303 を使用しているGPSレシーバーの場合は、gpsinit.sh内の設定値を次のようにするべし。
GPS_DEVICE_TTY=ttyUSB5

GPS_DEVICE_TTY=ttyUSB5
大事なことなので、2度言いました。(`・ω・´)

( ..)φメモメモ

次のSDKではどうなるかわかんないけどね( ・ω・)

2010年9月7日火曜日

SDK 1.9.1 シリーズ差

SDK 1.9.1になって、安定してきたEKENタブレット。
M001, M002, M003 とシリーズがあるけど、ファームウェアの中身についてほとんど差がなくなっている。
バイナリレベルではほぼすべて同じ。
以前は機種によって異なるハードウェア、画面関係やボタン関係についてはドライバが違っていたりしたけど、1.9.1についてはそれもすべて同じ。

M003用ROMを作るとき、Diffって調べた結果、入れ替えたのは、

rescriptcmd         \script\
touchcal             \script\etc\
touchcal             data.tar -> /wmtpref/
batterystats.bin   data.tar -> /system/
3種4箇所だけ。
なんと簡単移植。

実際は apk が使う .db ファイルもかなり違うんだけど、これはアプリが使うものだから特に機種依存するものではないため無視。
batterystats.binについては不明だったため、一応、コピーしといた。

ひょっとしたら、M001のROMに、
rescriptcmd と touchcal をコピーしてくるだけで動くかも知れない。
data.tarのtouchcal は \script\etc\touchcal で上書きされるので、実質、アーカイブ内部は触らなくてイイのかも。
もしそうなら、移植がとっても楽になるなぁ。(・∀・)


ところで、B4のダウンロード数がとうとう100を超えた。
踏み台ROMww、外人、ダウソしすぎww

2010年9月6日月曜日

m001etc ver1.1.0

●はじめに

USB GPSレシーバー対応 m001etc カスタムファームウェアです。
オリジナル ver 1.9.1 ベースです。

基本機能は m001etc ver 1.0.0 と変わりませんが、一部機能の変更があります。

M003なんちゃって対応版もリリースします。
ダウンロードは右サイドバーからどうぞ。


●変更点
  • オリジナルファーム ver 1.9.1ベース
  • thumbserverの停止
  • Snapshot機能が使用できなくなった

●概要

  • オリジナルファーム ver1.9.1ベース
  • プリインストールアプリの削除による軽量化
  • root化済み
  • googleアプリ(Marketなど)
  • Bluetooth使用可能
  • USB GPSレシーバー対応(ホットプラグは不可)
  • swap on スクリプト(オプション)
  • フォントコピー(オプション)

●GPSレシーバー

動作確認が取れているのは下記の通りです。
  • GT-730FL-S    (Sky Traq Venus 6 / pl2303 / 38400bps)
  • Gosget BU-363    (SiRF StartIII / pl2303 / 4800bps)
  • SKYLAB SKM50    (MTK3327 / cp2102 / 9600bps)
  • GR-300        (SiRF StartIII / pl2303 / 4800bps)


●追加フォントファイルのインストールについて


アーカイブを解凍してできる script\usr_etc ディレクトリに、TrueTypeフォントファイルを入れておくと /system/fonts に自動的にコピーします。
このとき、フォントファイル名を DroidSansJapanese.ttf にしておくと、Androidのロケール設定で日本を選択したときに、このフォントが使用されます。


●thumbserverの停止について


M001のバックグランドサービスとして起動される、thumbserverを停止しました。
thumbserverはpeacockシリーズのアプリケーションにおいてメディアファイルを管理するデータベースを構築するサーバーです。
このサーバー機能は本体内のメディアファイルを走査し、メディア情報を収集するのが目的です。この処理は非常に高コストであり、しばしば、M001の処理の重さの原因になっています。
peacockシリーズのアプリケーションを使用しない場合はサービスを起動する必要が無いため、今回、削除としました。
これにより、バックグランドで重い処理を走らせることがなくなり、安定した動作を得る事ができます。

ただし、Snapshot機能がこのthumbserverを利用しているため、serverの停止により Snapshot機能も使用できなくなります。
スクリーンショットを撮る場合は、別途、SDK環境よりデバッグ機能を用いて撮影してください。


●スクリーンショット


●ダウンロード

m001etc ver1.1.0
http://www.megaupload.com/?d=CIDAUUB2

m001etc-m003 ver1.1.0
http://www.megaupload.com/?d=59ADSI85


以上。



1.9.1ベースっと(・∀・)

基本的に機能は同じ。
大きな変更点としては、thumbserverを停止したこと。
snapshot 機能が使えなくなったので、スクリーンショットが撮れない(;´Д`)
ステータスバーには目玉アイコンが表示されて、押すこともできるけど、何もならないヨ(・∀・)
スクショ、便利なんだけどね。
どうしても処理が重くなるthumbserverが許せなかった(笑)

2010年9月4日土曜日

setenvの再現

1.9.1ベースのm001etcでテスト中(・∀・)

動作環境の移植はできたんだけど、最後の難関、scriptcmdでのsetenvをどうするかで躓いていた。
コメント情報からscriptcmd内にsetenvを埋め込んでも書き換わる環境変数があるのは確認できた。
がしかし、肝心の wifi_powerdown についてはインストール処理のどこかで上書きされてしまい元に戻ってしまう(´・ω・`)
他に幾つかの環境変数も同じような現象になる。
こりゃ、事実上scriptcmdで環境変数をセットするのは諦めたほうがいいなと、別の方法を考えていた。

で、方法としては、
ブート時に必ず実行される init.rc 内で環境変数設定スクリプトを呼び出す方法。
コレは上手くいく。実際にやってみた。
ただし、1回目の起動は失敗する。
1回目の起動で環境変数を書き換えるため、1回目は書き換わってない状態でブートしてるから。
ま、この方法でも「1度リブートしてね(はぁと」と断り書きしとけば問題ないんだけど、ブート時に毎回走るのがウザい。

んで、もう少し調べてみた。
きっと、インストール時のユーザーランドを調べればどこかでsetenvしてるだろうと探したんだけど、どこにもその形跡が見つからない。
prepare.bin, ramdisk_88_en.gz, mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz, どこにも見当たらない。
これまた、行き詰った(´・ω・`)
圧縮ファイルの中かもしれず、、、そうなると、インストール処理のブートシーケンスを追っかけるのも面倒くさくなって、投げた(笑)

で、考える。
1度だけ実行されればいい setenv。
インストール時に実行可能なのは、scriptcmd か update.sh。
例えば、update.sh内でsetenvできれば上手く行きそうだ。
つーことは、インストール時のユーザーランドにsetenvのバイナリがあればおk!?( ・ω・)

なんとなく、いけそうだな。
問題は移植するsetenvバイナリをどこから持ってくるか?

まず、インストール時にloopバックデバイスとしてmountされる、2つのイメージ、
mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz
ramdisk_88_en.gz
を、バラしてみた。
すると、ramdisk_88_en.gz 内に使えそうな setenvコマンドがあった。
試しに抜き出して、実機上でsetenvすると、環境変数が上手く書き換わる(・∀・)

イケる!

と言うわけで、このsetenvバイナリをインストール時のユーザーランドに移植すれば、update.sh内で setenvし放題!!ってことになるハズ\(^o^)/


つーわけで、移植方法を書いておく(`・ω・´)

取り出しはすべて開発用のUbuntu上で実行。

●setenvを取り出す。
mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz
ramdisk_88_en.gz
をUbuntu上にコピーしておく。

ちなみに、インストール時に使用されるユーザーランドイメージは、mvl5_v5t_ramdisk_WM8505.090922.loop_en の方。

んで、解凍。
# gunzip mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz
# gunzip ramdisk_88_en.gz
mountポイントを掘って、ramdisk_88_en をloopバックデバイスとしてmount。
# sudo mkdir /mnt/tmp
# sudo losetup /dev/loop0 ramdisk_88_en
# sudo mount /dev/loop0 /mnt/tmp
setenvコピー
# cp /mnt/tmp/bin/setenv ~/
umount & 後始末
# sudo umount /mnt/tmp
# sudo losetup -d /dev/loop0
取り出し成功(・∀・)

次、インストール時のユーザーランドへコピーする
mvl5_v5t_ramdisk_WM8505.090922.loop_en をloopバックデバイスとしてmount。
# sudo losetup /dev/loop0 mvl5_v5t_ramdisk_WM8505.090922.loop_en
# sudo mount /dev/loop0 /mnt/tmp
setenvコピー
# sudo cp ~/setenv /mnt/tmp/bin/setenv
# sudo chown 1001:1001 /mnt/tmp/bin/setenv
# sudo chmod 777 /mnt/tmp/bin/setenv
umount & 後始末
# sudo umount /mnt/tmp
# sudo losetup -d /dev/loop0
んで、圧縮
# gzip mvl5_v5t_ramdisk_WM8505.090922.loop_en
おしまい。

できあがった mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz をファームイメージにコピーすればおk

android_fs.tar の中にも system/bin/setenv があるんだけど、これはダイナミックリンクされてるので複数のライブラリが別途必要になる。
ramdisk_88_en.gz の中の setenv は libcだけが必要なのでダイジョウブ(・∀・)

ちなみに、このsetenvコマンド。
実行するだけで、自動的にsaveenvしてくれる。便利。

あとは、update.sh内で、
setenv wifi_powerdown "D8110064|0x4,D811008C|0x4,D81100B4|0x4"
setenv regop "D8110064|0x4,D811008C|0x4,D81100B4|0x4,D8110064|0x8,D811008C|0x8,D81100B4|0x8,D8130054|0x1"
setenv camera_ui yes
してやればおk(・ω・)

setenv問題についてはコレで解決~

2010年9月2日木曜日

自由だぁ~

google app の移植は完了。
Market周辺の動作も確認できたのでたぶんダイジョウブ。
とはいえ、みんなで共有IDには変わりない(笑)

にしても、フリーのアプリを落とすだけでなぜgoogleにこれだけ縛られるのか。(´・ω・`)
固体情報が欲しいんだろうけど。
コンテンツでがんじがらめにするリンゴとあんまりかわらん気が。

これではシャクなので、Fix Market For Slate Wiki を試してみた。
結果は、、、ゴニョゴニョ(笑)
コリジョンの無い世界ってイイなぁ(゜-゜)
ひとまず、アプリのバックアップだけ取って置いて、ローカルインストールできるようにしておくと吉。

んで、m001etc。
後はデバイスの初期化処理なんかを入れる作業が残っている。
ま、ぼちぼちやります( ・ω・)


ところで、m001etc-B4のダウンロード数がココへ来てなぜか伸びている。
なぜB4が?おかしいな?と、SlateDroidのフォーラムを眺めてたら、

『へい!WinCEをインストールするなら、m001etc-B4でやると確実だぜ!ダウンロードはココ!』

なーんて、紹介されてたww
踏み台ROMキタコレ(爆)

まぁ、野良ROMをどう使おうが、
煮ようが、焼こうが、

使う人間の自由だぁ~( ´∀`)9

ってことで。