2012年12月1日土曜日

ThinkPad T61pにWindows8をインストール

先日購入したマシンがとどいたので、早速セットアップ。じぜんの調査からアップグレード版のWindows8でもまっさらなDISKにクリーンインストール出来る方法があるらしい。というか、単純に2回インストールするだけ。どうやら、インストール時にWINDOWSというフォルダがあるかどうかだけしか見てないらしい。というわけで2回いれて、普通にライセンスもOKになりました。

しかしここからが鬼門で、T61pはもう古いPCなので、ドライバがなかなかWindows7以後の対応のものがありません。でもほとんどのものはWindows7のもので代用できるみたいなので、Lenovoのサイトから順次ダウンロードしていれてみました。

ThinkVantage System Update
Ultra Navi
Access Connections
SoundMax
Nvidia FX570
Intel Gigabit Ether
Ricoh 4 in 1 memory card reader
Chipset support
Monitor info file
Hotkey
指紋認証

うろ覚えw。

不明なデバイスが最後までのこったんだけど、RicohのカードリーダとWirelessUSBだっけな?いれたらそれも消えた。不明なデバイスは0になった。

で、Skype入れたら、Windows8用ってフルスクリーンのしか無いの?やたらうざいんですけど。。
しばらくつかってみて、SSDにしたことだし、パフォーマンスの測定をCrystalDiskMarkでやってみました、案の定SATA1の限界の1.5Gbpz程度の性能ですね。前回のエントリでも書きましたけど、T61pにはカスタムBIOSがあってSATA2の能力が開放可能です。とりあえず

http://forum.notebookreview.com/lenovo/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443

ここからおとしてみて、CD-Rに焼いといたものを入れて起動。F12でブートデバイスえらんで起動してみると、BitLockerがうんたらで焼けないから、BitLockerオフにしてよ!というエラーが。

とうぜんBitLockerなんかつかってないわけですが、ここは落ち着いて、BIOSでセキュリティチップをオフにしてもう一度CDブートさせてみると、いけました。2回ほどビープがなって勝手に再起動してアップデート完了です。バージョンが上がってるのを確認して、再度CrystalDiskMarkしてみると、ほとんど変わってません。まだなんか足りないみたいです。

そこでこれはSSD周りのドライバかなと思い、IntelSSD ToolboxをいれてSSDのファームを最新にしてみてから、Intel Matrix Storage Consoleをインストール。IHC8ウンタラのインストールがされたみたいなログがでたので、再起動して再度CrystalDiskMarkしてみると。今度はSATA2らしい速度になってました。

はじめは微妙にプチフリぽい挙動だったんだけど、次第に落ち着いて?DISKが100%になったりはしなくなりましたのでよしとしましょう。Intel SSD 335はいろいろ相性あるみたですねー。

それはそうと、しばらくいろいろインストールしていると、いきなりブルースクリーン!しかもフォントが潰れちゃって何がかいてあるのかわかりません!うんたら.sysが原因とかでてるけどみえねーよ!!みえれば対処のしようがあるのですけど、なんでこんな低い解像度の画像みたいな画面だすの?バカなの?

キレてもかいけつしないので、Windows8 SDKに入ってるデバッガをインストールしてみました。デバッガだけインストールするなら早いです。

デバッガを起動したら、シンボルは

SRV*c:/websymbols*http://msdl.microsof.com/download/symbols

を設定してやって

c:/windows/memory.dmp

を、open crash dumpでひらくと勝手に解析してくれます。しばらく時間はかかります。

Probably caused by あたりを見ると原因のドライバ等がわかるかも。今回は

netwlv64.sys

で落ちてました。T61pにWindows8入れる人はそのへん注意して見るといいかも。


20150624 追記
結構見に来てくれる人がいるみたいなので。追記。
newlv64.sysでブルースクリーンになる人はWIFIのドライバの802.11nをOffにしてみてください。
4965AGNはIntelがWin8系のドライバをださないみたいなので、これからも対応されることはないかと思います。。。
自分は802.11nをoffにしてしばらく経ちますけど、BSODとかフリーズとかは食らってませんね。今でもメールはこのマシンで読んだりしてます。

-> 24時間後BSOD。。頻度はすくなくなったけど、やっぱりダメでした。。

2012年11月28日水曜日

凛として時雨 - abnormalize

最近気に入っている3ピースバンドなんですけど、新しいアルバムが出てたんで買ってみました。うーんかっこいいね!まぁ、レビューってわけでもないんだけど、音質的にはアンプとスピーカー通して聞くよりも、ヘッドフォンでの楽しさを重視した感じの音作りというか、、うちのシステムで聞くよりAppleLosslessでエンコードしなおして、スマフォで聞いたほうがいい感じなんですよね。

最近こういう音作り多いよなぁ。ヘッドフォンステレオ意識してるんでしょうかね?

まぁ、なんにせよ、イイもんはイイので。



DVDつきでお得な感じ。
ちなみにこの曲はいまやってるアニメ、PSYCHOPASSの主題歌なんですが、実はアニメもおもしろいっすよ。

そういや、Telecastic fake showのHDビデオYoutubeから消えましたねぇ。チャンネルあるんだし、そのへんもアップしてくんないかなぁ。




2012年11月26日月曜日

マルチモニタ環境構築

さて、ついこないだマルチモニタの環境を更新したんで、書いておこうと思う。自分の環境はFullHDの24インチモニタx2と17インチの4:3モニタx1という変則的?な構成でして、まぁ、買った順番に全部つなげているとwそういうわけです。

マルチモニタはどうしても机の面積を専有してしまうので、VESAのアーム等をつかってなるべく机の上は広く使いたいものです。自分は24インチに1台でほぼムービーとか常時流しているので、正面に1台は置いておきたい。そうなると、あとのものは端っこに追いやられるわけで、そのあたりをVESAアームでなんとかしてみました。

あとビデオカードも重要ですね、少し前のカードだと2モニタが普通ですから、3モニタ以上だとビデオカードの増設が必要になります。ただ、最近は4画面同時出力可能なビデオカード等がありますから、そういうのを使うのも手です。

自分のセレクトの基準は、LCDは消耗品的に考えてやすくてそこそこのものを、アームはしっかりとしてガタつきのないもので、なるべく部屋のなかにあっても違和感のないデザインのもの(VESAアームってダサいの多いから。。)かつ画面のレイアウトの自由度が高いもの。といったところですかね。

で、選んでみたのが、




という感じ、グラボはいままでGTX285つかっててなんの不満もなかったんで、もったいないかなと思いましたが、3画面にするには何らかのビデオ出力を追加しないといけないわけで、まぁ、最新GPUにも興味あったし、いいか!という感じです。

で、設置してみて、ビデオカードはベンチマークくらいしか試してないので、レビューできないけど、まぁ、1台でモニタ4つつなげるってのはいいですね。グラボ選ぶときは、ある程度大きなファンがついてることとなるべく設置しやすいってことですかね。このグラボはリファレンスよりは全然よさげです。箱をあけたらGALAXYって書いてありましたから、GALAXY製?なのかな。それから、VESAアームのエルゴトロンの製品の出来栄えは素晴らしいです、しっかり感や、モニタの位置の調整のしやすさなど、設置をはじめてすぐにわかりました。デザインもこれなら納得できます。

それと、LGのモニタですが、それまでメインモニタだったBenQのG2411HDよりも発色が優れているように思います。G2411HDはLEDバックライトじゃないはずなので色味の違いもそのへんにあるのかもしれないですが、LGのモニタのほうがくっきりはっきりですね。やすいんですけど、これならデザイナーでもない限りそれほど文句でないんじゃないでしょうか?まぁ、なにより値段が安いっすね。


というわけで、3画面になったわけですが、やっぱり快適。あとはWindowsのタスクバーを全部の画面に出したいなぁ。。Windows8なら出せるらしい。


2012年11月25日日曜日

ThinkPad T61p WUXGAと T60 (QXGA換装)

ちょうどいまから2年前にT42の14inchからT60に乗り換えたのですが、その時に

1. QXGA (2048x1536)化
2.SSD導入
3.4GBメモリ

という感じに構成してやって2年間使ってきました。2年前でもT60はすでに古かったワケですがどうして選んだかというと、QXGAのためですね。15インチの4:3筐体にQXGAはかなりインパクトあります。自分にとっては広いデスクトップが第一の基準なのです。

QXGAパネルはヤフオクで売ってもらいました。それにSSDとメモリを4G搭載して、XPで運用してきたわけです。強烈に早いわけではないですけど、遅すぎるという感じでもない(自分にとっては)というわけで、約2年QXGA環境でコード書いたりドキュメント書いたり読んだり、いろいろ仕事にも活用してきたわけです。

そうそうT60のQXGA化はいろんな人がトライしているみたいで、Google検索しててもいろいろ出てきますね。いまはQXGAのパネルがなかなか入手できないみたいですけど、QXGAは唯一無二という感じのパネルですから、探している人もいると思います。

で、そのT60も最近やっぱり古さを隠せなくなってきました。Windows8もでたことですし、もう少し新しい環境へ移行しようかと。そこでT61pですw。また中古ですね。ThinkPadの中古はパーツも豊富だし、整備マニュアルも充実してるから、簡単に弄れますし、とんがった性能を求めなければ、十分現役で行けるマシンも比較的やすく手に入ります。ちなみにT60pは当時のフラッグシップでしたが、いまではだいたい4万弱で手に入ります。スペックは

Core 2 Duo T7700 2.4Ghz 2core
Intel PM965 Express
SATA (1.5Gbps)
1920x1200 WUXGA LCDパネル
Quadro FX570M

という程度のものでまぁ、古いわけですが使えなくもない。なんといっても最近は少ないWUXGAパネルがポイントですかね、中古のW500という選択肢もあったわけですけど、W500買って使えるように仕立てるなら、はじめっから新品買う位になるかもしれないですし、まぁTシリーズに思い入れもあります、あと英語キーボードがT60のと共通で流用できるってのもありますね。

というわけでよさげなT61pをネットで発見したので、即注文してみました。あとはSSDとメモリとOSですね。

SSD      : Intel 335 240GB SSDSC2CT240A4K5
Memory : PATRIOT DDR2-800 4G x 2 PSD28G800SK
OS        : Windows8 Upgrade

という感じです。ここでポイントなのがメモリですね、T61pのスペックシート上搭載メモリは4GBが上限みたいですが、PM965 Expressなので8GBまでいけるはずです、事実ネット等を検索していると8GBを認識させてる人がたくさんいるようです。PATRIOTのメモリは動作報告されている方のネット上の記事を読んで選びました。それからSSDですが、これはSATA 6Gbps対応のモデルですが、T61pのデフォルトでは単なるSATA-1なので1.5Gbpsが最大ということなのですが、これもPM965 Express+ICH8M-E(?)ではSATA2までいけるはず。

色々調べると、どうやらT61シリーズにはカスタムBIOSがあって、それでSATA2の速度が出るようになるというのを発見。となると3Gbpsでるわけですから、64bitOSとあわせてそれなりになるのではという皮算用です。

http://forum.notebookreview.com/lenovo/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443

のこりはOSですが、じつはまだ本体が到着しておりませんw。というわけで、この出費がどうなるかまた次回以後Blogにエントリしてみたいと思います。まぁ、それより心配なのはQXGAになれた体にWUXGAが耐えられるかどうかなんですけどね。。


2012年11月8日木曜日

TRANSAVA AVA748 MTK6577 4.7 FWVGA をServersMan SIMで使う

TRANSAVA AVA748 MTK6577 4.7 FWVGA をServersMan SIMで使う

忘れっぽい自分のためのログです。 TRANSAVAというきいt事のない会社のスマフォを手に入れました。台湾の会社みたいですが、いろいろ スマフォを作ってます。その中にAVA748という機種がありますが、これはGalaxy S3モドキな端末で プロセッサはMTK6577を使っています。スペックによるとDualCore 1.2Ghzらしいのです。

メモリは 1GB搭載のはずですが/proc/meminfoですと512しか載ってそうにないです。SIMは2枚ささるDual仕様です。 MTK系のプロセッサを搭載したスマフォのご多分に漏れず、こいつもMVNOのSIMは普通に認識しません。 iPhone4Sモドキの時のように、手をいれる必要があります。

 まずrootにならないと始まらないので、root化について。 基本的にAVA748はHDC Galaxy S3 i9300あたりと同じハードのようです(いろいろ調べた結果)なので XDAあたりで、HDC Galaxy S3 i9300系のrootingの話題を調べていくと、一発で行けそうなのがありました。 結果からいえば

http://forum.xda-developers.com/showthread.php?t=1886460

このスレから最新のRoot MANI Androidを落としてADBで端末をつないで、実行するだけです。AVA748を持ってる人 もそうですけど、HDC Galaxy S3 i9300を持ってる人もこれでいけます。 ちなみに、AVA748が手元に来た時のスペックは、Android 4.1でした。JBです。問題なくrootとれました。

MTK6577は比較的最近でたプロセッサなので、スペックも良くなってます。普通に使っているぶんには 問題ないレスポンスです。

#MTK6577搭載のスマフォは安いのがたくさんありますが、このAVA748と似ているスペックのものであれば
#同様の手法でrootになれると思われます(たぶんね)。 

さて、ServersMan SIMを認識させるにはframework.odexを入れ替える必要がありますが、これは以前の エントリに詳しく書いたのでそれを参考にしてもらうとして、特に気をつける部分としては

API Level 16 (JB) にすることと、

baksmaliの実行オプションを下記にすることです。

java -Xmx512m -jar baksmali-1.3.2.jar --api-level 16 -c:core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar:secondary_framework.jar -d temp/framework -o temp/lv16 -x temp/framework.odex

/systemパーティションのりマウントはadb remountが効かないので、下記のコマンドでいけます。

mount -o remount,rw /system

あとは同様の作業でいけますね。リブート後アンテナが青に変わるのとHマークを確認できました。 もちろん通信もOKでした。

 INTERMISSION

 実はroot取るまでにいろいろやってて、一回ファームを飛ばしましたw。文鎮か!と思ったのですが、 Googleを丹念に検索していると、ロシアのサイト等に情報がありそうです。

AVA748で検索しても何も 情報が出て来ませんので、必ず「HDC Galaxy i9300」等のキーワードで探さないとダメです。 ロシア語はGoogle翻訳にほりこめばOKです。


必要なファイル
1. http://ge.tt/40nlxJQ/v/0 (Full ROM for HDC i9300)
      --> ICS.V1_3.120921.FWVGA.4P4_COM_EN_SAM.zip
2. http://search.4shared.com/q/1/SP_Flash_Tool_v3.1222.00 (SP Flash Tool)
3. http://www.4shared.com/zip/YXlLFoLm/6577driver_install_3_steps.html (ドライバ類)

はじめにドライバをインストールしますが、まず端末の電源を落としてバッテリを抜いておきます。 次に3のドライバを展開して、The First Stepのフォルダにあるmsiをインストールします。 次に、Second StepのClick Install Driver.exeを実行してSuccessすれば準備OK。です。 

その後、電池を抜いた状態の端末をUSBケーブルでPCに接続します。するとドライバのインストールが始まる はずです。インストールがおわって静かになったら、ケーブルを抜いておきます。 ファームのzipを適当な場所で展開します。 SP Flash Toolを適当な場所で展開します。 Flash_tool.exeを実行してScatter-loadingボタンをクリックしてscatterファイルを指定します。 ファイルはファームを展開したディレクトリ以下にある
 
MT6577_Android_scatter_emmc.txt

を指定します。するとリストが現れます。基本的にチェックがついてる部分を更新できます。ファームを飛ばした 要な場合は、Firmware Upgradeボタンを選択すればOKです。 端末に電池をいれて、電源は入れずにそのままの状態にしておきます。 アップグレードボタンをクリックすると待機状態になりますので、その状態で端末をUSBケーブルで接続します。 すると、赤いプログレスバーの後に紫とかブルーとか黄色のプログレスバーが表示され、最後に○が書かれた ダイアログがでればファームアップ完了です。 

#この時、初回だけドライバのインストールを求められますので、その時にはドライバZIPのなかにあるMTPの
#フォルダを指定してインストールします。 端末の電池を一旦抜いて、再度装着し、電源を入れます。

これで初期状態になったはずです。 ClockworkMod等を導入するには上記の手順のときに「RECOVERY」だけチェックを入れた状態で Downloadボタンをおすことでリカバリだけ書き換えられます。 #コイツ用のCWM発見できてないんですけどね。。 これで戻ったように見えますが、IMEIとかか飛んじゃってます。IMEIは電池をはずすと、ボディ側に 記載がありますので、メモって置きます。 IMEIの書き換えはrootが必要なので、はじめの手順でrootをとって、それから作業します。
 
http://chinamobiles.org/showthread.php?28457-IMEI-wiederherstellen-Komplettpaket-%28MT6516%29
上記の掲示板のスレから
IMEI MT6516 Wiederherstellen.zip
をダウンロードして、展開します。IMEI Generator.batを実行すると2つのIMEIを聞いてきますので それをさっきメモったIMEIを指定します。するとカレントに
MP0B_001
というファイルが生成されますので、adb pushで端末に持って行っておきます。
adb push MP0B_001 /sdcard/
adb shell
su
cd /data/nvram/md/NVRAM/NVD_IMEI
busybox cp /sdcard/MP0B_001 .
busybox chmod 664 ./MP0B_001
reboot

という感じでIMEIが戻ったはずです。パーミッションはちゃんと指定しましょう。

INTERMISSION END

  というわけで、またレアな端末いじりましたけど、MTK65**あたりの機種には結構使える手段じゃないかと 思われます。見たこと無い端末をいじる場合は、プロダクトの写真とかスペックとかをみて似てる端末を 探して、その端末での手法が適用できるか考えるといいかも。特に今回のAVA748の場合はHDC Galaxy S3 i9300と 瓜二つだったので、ほぼ確信をもって作業しました。

#画面サイズの違うファームも焼けました。ですが、砂の嵐みたいな画面が出て使えませんでした、
#また日付の異なるファームを焼いた時は、タッチパネルが狂って、全然思う場所がタッチできなかったり。。
#しかし、つかえないながらも起動しちゃうあたりがMTKシリーズって感じですかね。 上記の手法で文鎮になっても自分は責任とりませんので、よろしく! 

2012年9月16日日曜日

iPhone 4s Ultimate Edition 終極版 画像等。

とりあえずつかるようになったので画像など。

Leica M8 with Noctilux 50mm F1.0@F1.0
Launcher Proいれてみました。手前のがgoophoneモドキです。標準のiOSパクリのホームアプリはけっこうもっさりでしたが、Launcher Proだと使えるレスポンスになりますね。一応解像度はRetinaとおなじだけあって解像度が高いので、横5つアイコン並べても文字が潰れたりしません。

白いバンパーがころがってますが、微妙に大きさがあわなくて付けるのを諦めました。。電源ボタンがわずかにパチモンのほうがでっぱているので、常時おした状態になっちゃいます。それとも買うバンパーまちがえたかな?4S専用とかってありましたっけ。。

ま、ケースなんかいらねぇか。

こういう端末のわからないところは、いったいどこのだれがファームをつくってんの?ということなんですが、本家?のgoophoneとかはrootingキットとかあるみたいだから、こいつはgoophoneじゃないんでしょうね。でもハード構成はかなりgoophoneに似てるしもしかしたら名前が違うだけかもしれないですね。さずがにぜんぜんちがうROM焼いて文鎮にするのは嫌なので、これからROM入れるにしても調査してからですね。ちなみに、goophoneは最近の出荷では4.0.3が導入されてるらしく、そのあたりのROMがこれに当てられるか調査中です。

そういえばgoophoneの2.3.xのファームと4.0.xのファームのbuild.propを掲載しているサイトがあったと思ったけど、URL忘れました。そのうちみつけて比較してみます。とりあえず、こいつのbuild.propはこんな感じ。

# cat build.prop
cat build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=GRK39F
ro.build.display.id=ALPS.GB2.MP.V2.10
ro.build.version.incremental=eng.ser4.1344579181
ro.custom.build.version=1344579181
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.6
ro.build.date=Fri Aug 10 14:17:54 CST 2012
ro.build.date.utc=1344579474
ro.build.type=user
ro.build.user=ser4
ro.build.host=ser4-System-Product-Name
ro.build.tags=test-keys
ro.product.model=4S
ro.product.brand=iPhone
ro.product.name=htt75_emmc_gb2
ro.product.device=htt75_emmc_gb2
ro.product.chivinproduct=4S
ro.product.chivinversion=0502E010_20120810
ro.product.customversion=0502E010_20120810
ro.product.board=htt75_emmc_gb2
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=alps
ro.product.locale.language=zh
ro.product.locale.region=CN
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=htt75_emmc_gb2
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=htt75_emmc_gb2-user 2.3.6 GRK39F eng.ser4.1344579181 test-keys
ro.build.fingerprint=iPhone/htt75_emmc_gb2/htt75_emmc_gb2:2.3.6/GRK39F/1344579181:user/test-keys
ro.build.flavor=
# end build properties

# begin mediatek build properties
ro.mediatek.version.release=ALPS.GB2.MP.V2.10
ro.mediatek.platform=MT6575
ro.mediatek.chip_ver=S01
ro.mediatek.version.branch=ALPS.GB2.MP
# end mediatek build properties
#
# system.prop for generic sdk
#

rild.libpath=/system/lib/mtk-ril.so
rild.libargs=-d /dev/ttyC0


# MTK, Infinity, 20090720 {
wifi.interface=wlan0
# MTK, Infinity, 20090720 }

# MTK, mtk03034, 20101210 {
ro.mediatek.wlan.wsc=1
# MTK, mtk03034 20101210}
# MTK, mtk03034, 20110318 {
ro.mediatek.wlan.p2p=1
# MTK, mtk03034 20110318}

# MTK, mtk03034, 20101213 {
mediatek.wlan.ctia=0
# MTK, mtk03034 20101213}


# MTK, TeChien {
ro.media.enc.hprof.file.format=3gp
ro.media.enc.hprof.codec.vid=m4v
ro.media.enc.hprof.vid.width=720
ro.media.enc.hprof.vid.height=480
ro.media.enc.hprof.vid.fps=30
ro.media.enc.hprof.vid.bps=3400000
ro.media.enc.hprof.codec.aud=amrnb
ro.media.enc.hprof.aud.bps=12200
ro.media.enc.hprof.aud.ch=1
ro.media.enc.hprof.aud.hz=8000

ro.media.enc.mprof.file.format=3gp
ro.media.enc.mprof.codec.vid=m4v
ro.media.enc.mprof.vid.width=352
ro.media.enc.mprof.vid.height=288
ro.media.enc.mprof.vid.fps=30
ro.media.enc.mprof.vid.bps=990000
ro.media.enc.mprof.codec.aud=amrnb
ro.media.enc.mprof.aud.bps=12200
ro.media.enc.mprof.aud.ch=1
ro.media.enc.mprof.aud.hz=8000

ro.media.enc.lprof.file.format=3gp
ro.media.enc.lprof.codec.vid=h263
ro.media.enc.lprof.vid.width=176
ro.media.enc.lprof.vid.height=144
ro.media.enc.lprof.vid.fps=30
ro.media.enc.lprof.vid.bps=384000
ro.media.enc.lprof.codec.aud=amrnb
ro.media.enc.lprof.aud.bps=12200
ro.media.enc.lprof.aud.ch=1
ro.media.enc.lprof.aud.hz=8000
# MTK, TeChien }

#
wifi.tethering.interface=ap0
#

ro.opengles.version=131072

#HTT liujihui {
ro.setupwizard.mode=DISABLED
ro.com.google.locationfeatures=1
ro.com.google.networklocation=1
persist.sys.timezone=Asia/Shanghai
#persist.sys.timezone=Europe/London
#HTT liujihui }

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.sf.hwrotation=0
ril.current.share_modem=1
launcher2.allappsgrid=3d_20
curlockscreen=1
ro.mediatek.gemini_support=false
ro.mediatek.drm_support=true
persist.radio.fd.counter=20
persist.radio.fd.off.counter=20
ro.config.notification_sound=notification15.ogg
ro.config.alarm_alert=alarm14.ogg
ro.config.ringtone=ringtone14.ogg
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
#


以上。

2012年9月14日金曜日

iPhone 4s Ultimate Edition 終極版をDTIのServersMan SIMで使えるようにする

中華系のスマホやPadはb-mobileやDTI ServersMan SIM等のMVNOのSIMを認識しないという問題が あるらしく、こいつもその例外ではなかったです。ServersMan SIMをカットしていれてみたのは いいのですが、No SIM状態→アンテナピクト立たず。この状態だと3G的にも通信ができません。 #アンテナピクトが立たない状態でも通信できるNexus S-JB(4.1)とは状況も違うようです。 Googleでいろいろ調べていると同様の現象を経験されている方が多く見られました。そういうわけで 解決法も確率されているようです。具体的にはframework.jarに含まれるクラスである

GsmServiceStateTracker.java
を改変します。改変するメソッドは

regCodeToServiceState

です。ソースがあれば、そこからビルドでもいいのでしょうけど、コイツはそんなのは期待できません。 bksmaliをつかってデコンパイルし、内容を改変して、コンパイルしなおして、置き換えるという感じで やるしかないようです。

1.frameworkディレクトリをバックアップしておく

adb pull /system/framework ./framework

2.以下の手順でframework.odexを解体する

※参考にさせていただいたサイト
http://domas-tadamemo.blogspot.jp/2012/03/htc-chacharootdeodexexecutebat.html

はじめにこちらのサイトでzipでかためられているパッチを落としておく。

http://bl.oov.ch/2012/01/android-sim.html?showComment=1330930943649

展開すると現れるexecute.batを参考にさせていただいて、execute.batから抽出したコマンドを 調整したものが下記。api-levelに注意しないとエラーでます。

mkdir temp
adb pull /system/framework/framework.jar temp\framework.jar
adb pull /system/framework/framework.odex temp\framework.odex
adb pull /system/framework temp\framework
java -Xmx512m -jar baksmali-1.3.2.jar --api-level 10 -c:core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -d temp\framework -o temp\lv10 -x temp\framework.odex
cscript //Nologo data-only-sim-smali-fixer.wsf temp 10 0 1

#cscriptで変更しきれてない部分を追加で修正する。(あとで説明)
#修正したファイルをGsmServiceStateTracker.smaliと入れ替える
cd temp
cp data-only-sim-fix.smali ./lv10/com/android/internal/telephony/gsm/GsmServiceStateTracker.smali

java -Xmx512m -jar smali-1.3.2.jar --api-level 10 -o temp\classes.dex temp\lv10
cd temp
..\7za u -tzip framework.jar classes.dex
cd ..

bksmaliで展開して、cscriptのスクリプトを走らせて内容を変更した後に足りない部分をGsmServiceStateTracker.smaliを開いて 編集、method regCodeToServiceStateの中身を書き換える。
cscriptで置換している部分は下記のようにGsmServiceStateTracker.smaliを直接編集しても良い。
.method private regCodeToServiceState(I)I
    .registers 6
    .parameter "code"

    .prologue
    const/4 v3, 0x1

    .line 1729
    packed-switch p1, :pswitch_data_24

    .line 1746
    :pswitch_4
    const-string v0, "GSM"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;->()V

    const-string/jumbo v2, "unexpected service state "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    move v0, v3

    .line 1747
    :goto_1e
    return v0

    :pswitch_1f
    move v0, v3

    .line 1738
    goto :goto_1e

    .line 1743
    :pswitch_21
    const/4 v0, 0x0

    goto :goto_1e

    .line 1729
    nop

    :pswitch_data_24
    .packed-switch 0x0
        :pswitch_21 ; case 0
        :pswitch_21 ; case 1
        :pswitch_21 ; case 2
        :pswitch_21 ; case 3
        :pswitch_1f
        :pswitch_21 ; case 5
        :pswitch_4
        :pswitch_4
        :pswitch_4
        :pswitch_4
        :pswitch_1f
        :pswitch_4
        :pswitch_21 ; case 12
        :pswitch_21 ; case 13
        :pswitch_1f
    .end packed-switch
.end method
dalvikのpacked-switchの戻り値を調整するだけです。javaのコードでいうところの
return ServiceState.STATE_IN_SERVICE;
を返す場所を調整します。
code = 0, 1, 2, 3, 5, 12, 13
の場合にSTATE_IN_SERVICEを返します。 全体として、やってることは、framework.jar/framework.odexを本体から抜き出して、あと、farmework全体も抜いておく。 baksmaliにそれを食わせて、解体。GsmServiceStateTracker.smaliを編集して、もう一度コンパイル。 できたclasses.dexを、もともとのframework.jarに入れる。 という感じ。ここまできたらあとは実機に配置していく。その際少し注意するところがある。
※dexopt-wrapperでつくったodexは認識されないぽい。 ので、実際にclasses.jarのはいったframework.jarを配置して実機でframework.dexを生成する方法をとる。

1.上記の作業でtempにできたframework.jarを実機に転送
cd temp
adb push framework.jar /data/local/tmp
2.framework.jarをいれかえて、framework.odexを消してリブート。framework.dexを生成させる systemをr/wでリマウントして、まず実機内部でバックアップしておく。
adb remount
adb shell
cd /system/framework
cp framework.jar framework.jar.orig
cp framework.odex framework.odex.orig
※本来はframework.jarをシステムが掴んでない状態で作業するのがいいと思う。clockworkで起動していじる領域だけマウントしてやるとか。
※自分は面倒なんで!直で書き換えます。みなさんはくれぐれも真似しないように。
※リスク高い作業なんで、やるひとは自己責任でよろしく。
busybox cp /data/local/tmp/framework.jar ./
rm framework.odex
reboot
3.起動したら、/data/dalvik-cacheにdexがあるのを確認し、/system/frameworkに「ムーブ」する 
※完全には起動しないです、アップルマークで止まるはず。しかしadb remountはできるし、コマンドも打てる状態。
※このあたり非常に危険w。
adb remount
adb shell
cd /data/dalvik-cache
busybox mv system@framework@framework.jar@classes.dex /system/framework/framework.odex
4.framework.odexに署名をコピーする。busyboxのddでやること。
cd /system/framework
busybox dd if=./framework.odex.orig of=./framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
ここまでやると勝手に起動する。一旦起動するまで待って。framework.jarをもとに戻す 5.framework.jarを戻す
busybox cp framework.jar.orig framework.jar
reboot
これで完了。アンテナピクトも立つはず。通知バーにGマークがでてデータ通信が開始されればOK。 ついでにフォントも入れとこう Linaroのフォントを拝借。 http://www.blogfromamerica.com/wp/?p=2897 こちらのページを参考にさせていただきました。 ダウンロードはこれ

http://dl.dropbox.com/u/64994762/wp_images/AndroidJapaneseFont/DroidSansJapanese.ttf
adb remount
adb push DroidSansJapanese.ttf /system/fonts/
adb reboot
以上

iPhoen 4s Ultimate Edition 終極版 買ってみた

DTIのServersMan SIMを挿して使う端末として、新たに一台買ってみた。 スペックとしては1GのCPUと512MBのメモリなんでたいしたことないうえに、iOSを模倣した OSのためウィジェットも置けそうにないし、微妙な端末なんですが、ネタとしては面白いかと。 この手の端末で有名なのはGoophone Gooapple Sophone 等がありますけど、こいつはどれにも 該当しないという素晴らしさ。goophone作る過程で余ったパーツ横流しして作ったとか? パチもんのパチもんという匂いがプンプンしてきますw。

このあたりのiPhone cloneだとgoophone Y5とかgooapple V5とかsophone v75とかが有名かと思われますが 今回手に入れたのはiPhone 4s Ultimate Edition 終極版wです。まじパッケージとかヤバイです、普通に iPhone 4sの取扱説明書とか入ってます。Samsungが特許侵害で争ってますけど、これに比べれば白ですw。 極めつけは、Androidのホームアプリを可能な限りiOS5に合わせたところでしょうかね。アプリ削除の ☓ボタンがでて、ゆらゆら揺れるアニメーションとかまで再現されてます。普通に人に見せてもほとんど 気が付かれません。つか、ここまでするのはけっこう開発コストも結構かかってんじゃないですかね? まぁ、それもどっかのパクリなのかもしれませんが。。。

cpuinfoとmeminfoはこんな感じ。
adb shell
# cat /proc/cpuinfo
cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 10 (v7l)
BogoMIPS        : 1998.84
Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 10

Hardware        : MT6575
Revision        : 65fb8a00
Serial          : 0000000000000000
# cat /proc/meminfo
cat /proc/meminfo
MemTotal:         478384 kB
MemFree:           14452 kB
Buffers:            7888 kB
Cached:           142840 kB
SwapCached:            0 kB
Active:           166156 kB
Inactive:         195612 kB
Active(anon):     104612 kB
Inactive(anon):   133864 kB
Active(file):      61544 kB
Inactive(file):    61748 kB
Unevictable:        1016 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         478384 kB
LowFree:           14452 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        212068 kB
Mapped:            87484 kB
Shmem:             26420 kB
Slab:              14048 kB
SReclaimable:       4184 kB
SUnreclaim:         9864 kB
KernelStack:        4176 kB
PageTables:        14936 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      239192 kB
Committed_AS:    2196780 kB
VmallocTotal:     294912 kB
VmallocUsed:      142084 kB
VmallocChunk:     104452 kB
#
はじめに言っておくと、b-mobile / DTI 等のSIMはストックのままだと認識はするものの データ通信は行われない。これはいずれ手をいれるとして(先人たちが頑張ったのを参考に)、 GooglePlayあたりはいれておきたいところ。 おもむろにadb shellすると。。なんと!始めっからroot!。

cat default.prop
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=0
persist.mtk.aee.aed=on
ro.debuggable=0
persist.service.adb.enable=1

secure=0っすねー。パチもんの王道ですなw。だったら話は早いんで。/systemをいじり放題ですね。 GooglePlayをインストールする
こっからファイルをダウンロード

http://nursing-now.blogspot.jp/2012/06/how-to-fix-or-add-google-play-to-your.html

インストラクションも書いてあるけど、iPhone 4s Ultimate Edition 終局版の場合は GooglePartnerSetup.apkとVending.apkが足りないだけみたいなので、それだけ追加 パーミションも変えておく。/systemはrwでマウントしなおしておく。

adb remount
adb push GooglePartnerSetup.apk /system/app
adb push Vending.apk /system/app

adb shell
cd /system/apk
chmod 644 GooglePartnerSetup.ak
chmod 644 Vending.pak

ここで、設定からリセットをかけて端末を再起動します。再起動したら中国語にもどってるので 言語を再設定して。GooglePlayがHOMEにあると思うので、起動してみます。Googleアカウントを設定しろ のダイアログにしたがって設定をおわれば使えるようになってるはずです。 MoreLocale 2あたりをインストールして日本語にしておくと後が楽かも。で、一応GooglePlayも一応 新しくしておきましょう。下記のURLからverの新しいのをおとしてきて/sdcardにpushしてinstall すればOKです。

http://www.androidpolice.com/2012/03/16/download-google-play-store-formerly-android-market-v3-5-15-apk-with-a-brand-new-my-apps-interface/

好きなアプリ入れて見ましょう。あと、もとからrootなんですけど、suとかsuperuser.apkは入ってないので 入れる場合はマーケットからでOKです

2012年4月25日水曜日

NuForce ICON-1 & Scandyna Micropod SE 暫定レビュー

寝室ように買ったScandynaのMicropod SEとthe dockですが、全然つかってないので、書斎にもってきてみました。PC用にはちょうどよいかと。ところが、the dockはipod/iphoneしか接続できないので、アンプを物色することに。結局、以前から興味のあったNuFoceのICONにすることにしたのでした。すでにICON-2がでていますが、特価品がでていたので、ICON-1を購入。まぁ、いい音でききたけりゃ、普通に別システム起動すればいいだけなんで、ここは割り切ってみました。

NuForce ICON-1はスピーカー端子がEtherぽくて特殊なのと、説明書にいろいろ扱いの難しいような記述があるので、とっつきにくいのかもしれないですが、出てくる音は非常にクリアでサイズからは想像できない感じの解像度があります。まぁそれまでつかっていたのがONKYOのPC用スピーカだったので、差が激しいといえますが。。


ちなみに、購入するときに気になって調査した項目としては。

1.接続できるスピーカーの能率
2.スピーカー端子の問題
3.接続可能な入力端子の形状
4.音のよさ

程度のことですが、製品がでてからある程度たっているのと、値段のやすいのもあって、比較的レビューが多くありましたね。上記の事柄は全く問題なかったです。スピーカはmicropodなので、能率的にはまず心配はなく、端子もこれはこれでわりきればOKかなと。入力の端子は、3.5mmと赤白、それにUSBと十分です。音質も高解像度で小さい音もよく聞き取れます。

また、PCゲーマーにとって重要と思われるのが、USB接続時、その他の端子からの入力とMIXができるかどうかですが、ICONは入力は切替方式をとっているので、それぞれの端子に接続した音を聞きたい場合は、セレクタで選択する必要があります。まぁ、ここはRecon3Dもあることですし、その他のメリットを考えて、めをつむることに。

接続は、

3.5mm : PCのアナログ出力
USB   :  PCのUSB
赤白 :  PS3

という感じで、3.5mmはイマイチで、やっぱりUSBでつないだほうがいいみたいです。PS3をつないだ赤白でBlu-Ray等見てみましたが、こちらは結構安定した感じの音質。もしかしたら赤白が一番いいかも。そんなわけで、音は格段によくなりました、気になる点としては、サーノイズがちょっと多いことかな、でもこれはNuForceの特徴?らしいので気にしないことにしたのでした。

ScandynaのMicropod SEも小さいながら結構頑張っています。これ以上をのぞむと、キリがないのでこの辺がPCをいい音で楽しむにはちょうどいいのかもしれないです。音質的には、ツイータの材質のせいか、高音に金属質な音がのったりということはなく、バランスのとれた音と思います。

もうすこしエージングがすすんでから、再度評価したいとおもいます。


LEICA M8 Noctilux 50mm F1.0@F1.0

2012年3月30日金曜日

Node.js をnvmで管理、foreverインストールで問題?

最近Node.js で遊んでますが。v0.4.11 -> v0.6.14 -> v0.7.6 の3つをnvmでインストールしてみてます。某vpsなんだけどね。forever入れようとして全然ダメでした。これが何に起因する問題なのかわからないですけど、一応解決できたのでメモとしてエントリ。2012年3月末の時点でのログです。 nvmを使わずにnode.jsをインストールしちゃった人は、 /usr/local/bin /usr/local/lib /usr/local/include あたりからnodeのディレクトリを全部削除して 入れたらいい。
rm -rf /usr/local/bin/node
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/share/man/man1/node.1
rm -rf /usr/local/lib/node_modules
nvmはgithubから
git clone git://github.com/creationix/nvm.git .nvm
でもってきて、nvm.shをカレントのshellで実行しておく
source /somewhere/.nvm/nvm.sh
で、nodeのバージョン指定してnode.jsをインストール。
nvm install v0.7.6
これで普通にnode.js入れられる。nvmはnpmも一緒に入れてくれるのでnaveよりいいと思う。 バージョンを切り替えるのも簡単で、インストールさえしておけば
nvm use v0.4.11
とかでOK。ただ、環境変数とかちゃんと設定してから使いましょう。それから、各ユーザの設定で
if [ -s /root/.nvm/nvm.sh ]; then
    . /root/.nvm/nvm.sh
    export NODE_PATH=${NVM_PATH}_modules
fi
こんなのをbashrcに書いておくと楽。あと、
nvm alias default 0.7
とかもやっといたほうがいいかな? で、問題のforerverインストールですが
npm install forerver -g
だとエラーエラーで止まります。
npm ERR! Error: No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! No valid targets found.
npm ERR! Perhaps not compatible with your version of node?
npm ERR!     at installTargetsError (/root/.nvm/v0.7.6/lib/node_modules/npm/lib/cache.js:488:10)
npm ERR!     at next_ (/root/.nvm/v0.7.6/lib/node_modules/npm/lib/cache.js:438:17)
npm ERR!     at next (/root/.nvm/v0.7.6/lib/node_modules/npm/lib/cache.js:415:44)
npm ERR!     at /root/.nvm/v0.7.6/lib/node_modules/npm/lib/cache.js:408:5
npm ERR!     at saved (/root/.nvm/v0.7.6/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:147:7)
npm ERR!     at Object.oncomplete (/root/.nvm/v0.7.6/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:231:7)
npm ERR! You may report this log at:
npm ERR!     
npm ERR! or email it to:
npm ERR!     
npm ERR!
npm ERR! System Linux 2.6.18-164.10.1.el5.028stab067.4
npm ERR! command "/root/.nvm/v0.7.6/bin/node" "/root/.nvm/v0.7.6/bin/npm" "install" "forever" "-g"
npm ERR! cwd /root
npm ERR! node -v v0.7.6
npm ERR! npm -v 1.1.8
npm ERR! message No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! message No valid targets found.
npm ERR! message Perhaps not compatible with your version of node?
npm http 304 https://registry.npmjs.org/pkginfo
npm http 304 https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/portfinder
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /root/npm-debug.log
npm not ok
適当にGoogle先生に聞いてみると、いつぞやのIRCのログで -f つければいいよ、てのを見つけたので早速
npm install forever -g -f
これで全部入ることは入る。でも、なぜかコンパイルエラーが出ます。自分の環境だと
microtime
daemon
node-fork
はエラーなので、これを手で修正、といっても2度ビルドするだけです。 意味不明だけど2度ビルドするとエラー消える。
cd nvm/v0.7.6/lib/node_modules/forever/node_modules
cd microtime
node-waf configure build
node-waf configure build

cd ../
cd daemon
sh ./install
sh ./install

cd ../
cd node-fork
sh ./install
sh ./install
ここまできたらforerverコマンドを叩いてみる
[root@localhost ~]# forever
path.existsSync is deprecated. It is now called `fs.existsSync`.
help:   usage: forever [action] [options] SCRIPT [script-options]
help:
help:   Monitors the script specified in the current process or as a daemon
help:
help:   actions:
help:     start               Start SCRIPT as a daemon
help:     stop                Stop the daemon SCRIPT
help:     stopall             Stop all running forever scripts
help:     restart             Restart the daemon SCRIPT
help:     restartall          Restart all running forever scripts
help:     list                List all running forever scripts
help:     config              Lists all forever user configuration
help:     set       Sets the specified forever config 
help:     clear          Clears the specified forever config 
help:     logs                Lists log files for all forever processes
help:     logs  Tails the logs for 
help:     columns add    Adds the specified column to the output in `forever list`
help:     columns rm     Removed the specified column from the output in `forever list`
help:     columns set   Set all columns for the output in `forever list`
help:     cleanlogs           [CAREFUL] Deletes all historical forever log files
help:
help:   options:
help:     -m  MAX          Only run the specified script MAX times
help:     -l  LOGFILE      Logs the forever output to LOGFILE
help:     -o  OUTFILE      Logs stdout from child script to OUTFILE
help:     -e  ERRFILE      Logs stderr from child script to ERRFILE
help:     -p  PATH         Base path for all forever related files?(pid files, etc.)
help:     -c  COMMAND      COMMAND to execute (defaults to node)
help:     -a, --append     Append logs
help:     --pidfile        The pid file
help:     --sourceDir      The source directory for which SCRIPT is relative to
help:     --minUptime      Minimum uptime (millis) for a script to not be considered "spinning"
help:     --spinSleepTime  Time to wait (millis) between launches of a spinning script.
help:     --plain          Disable command line colors
help:     -d, --debug      Forces forever to log debug output
help:     -v, --verbose    Turns on the verbose messages from Forever
help:     -s, --silent     Run the child script silencing stdout and stderr
help:     -w, --watch      Watch for file changes
help:     -h, --help       You're staring at it
help:
help:   [Long Running Process]
help:     The forever process will continue to run outputting log messages to the console.
help:     ex. forever -o out.log -e err.log my-script.js
help:
help:   [Daemon]
help:     The forever process will run as a daemon which will make the target process start
help:     in the background. This is extremely useful for remote starting simple node.js scripts
help:     without using nohup. It is recommended to run start with -o -l, & -e.
help:     ex. forever start -l forever.log -o out.log -e err.log my-daemon.js
help:         forever stop my-daemon.js
help:
なんかいけたっぽいですね。deprecatedな警告が出てたりしますが、動作確認はこれからですけど、多分大丈夫でしょう。C++のコードとかでビルドエラーになるって人は試してみたらいいと思います。
#メモリが足らないのかなぁ。

 以上。log4jsも同様にやっつけましたw。某vpsの一番安いのでも全然遊べるって話。