2011年9月17日土曜日

Motorola Droid3 XT862にClockworkModRecoveryがやってきた



Thx!! Hashcode

Hash of Codes: Droid 3 Bootstrap

Droid3Bootstrap.apkをインストールし実行、Install Recoveryボタンを押下すればOKなお手軽仕様

CWMRecoveryへの入り方は
1)電源断
2)M+Powerで起動
3)BP ToolsまでVolDownキーで移動
4)VolUpを押し、BP Toolsを選択
5)しばらくするとCWMRecoveryが起動する

これで準備は整いましたね…

2011年9月15日木曜日

[update]Motorola Droid3 XT862 Battery1PercentStepMod



DROID3XT862 5.6.890 Battery1PercentStepMod v2

Update
11/09/27 originalのBatteryService.smaliとmod版のsmaliファイル置いておきますね。
source(smali)
#海の向こうの人にservices.odexまるパクリされて「俺が作った!」言われてだね…そーいうのやめれ。


イマイチだった部分、BatteryFullStateが95%の段階で発出される件とBatteryピクトの表示がこれまた95%でFull表示される問題の修正を行った。

まず先にピクト表示の件、getIcon methodの修正箇所について

.method private final getIcon(I)I
.locals 5
.parameter "level"

.prologue
.line 526

iget v2, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I
const/16 v3, 0x64
const/16 v4, 0x5

iget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

if-ne v0, v4, :cond_3
if-ge v2, v3, :cond_4

const/16 v0, 0x2

:cond_4
:cond_3

const/4 v1, 0x2

if-ne v0, v1, :cond_0

.line 527
const v0, 0x10802eb

.line 533
:goto_0
return v0

.line 528
:cond_0
iget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

const/4 v1, 0x3

if-eq v0, v1, :cond_1

iget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

const/4 v1, 0x4

if-eq v0, v1, :cond_1

iget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

const/4 v1, 0x5

if-ne v0, v1, :cond_2

.line 531
:cond_1
const v0, 0x10802d5

goto :goto_0

.line 533
:cond_2
const v0, 0x10802f2

goto :goto_0
.end method


BatteryStatusはこんな感じ
BATTERY_STATUS_UNKNOWN = 1/CHARGING = 2/DISCHARGING = 3/NOT_CHARGING = 4/FULL = 5
になっており、上記コードでは

const/4 v1, 0x2

if-ne v0, v1, :cond_0

const v0, 0x10802eb

:goto_0
return v0

:cond_0

の部分が判定式になっとります…v1にBatteryStatus、上のだとCHARGING = 2が入ってその下のif-neで判別。
const v0, 0x10802ebって部分はjavaのコードだと「com.android.internal.R.drawable.stat_sys_battery_charge;」な部分

今回追加で処理を入れたのはこの部分

iget v2, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I
const/16 v3, 0x64
const/16 v4, 0x5

iget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

if-ne v0, v4, :cond_3
if-ge v2, v3, :cond_4

const/16 v0, 0x2

:cond_4
:cond_3

元々はiget v0, p0, Lcom/android/server/BatteryService;->mBatteryStatus:IとmBatteryStatusをv0にぶち込むだけの所なのだがコレに
mBatteryStatusがFullかつmBatteryLevel1Stepが100%未満だったらmBatteryStatusをChargingに置き換えるという処理を入れてる。


次はIntentを投げてるsendIntent

.method private final sendIntent()V
.locals 8

.prologue
.line 397
new-instance v2, Landroid/content/Intent;

const-string v3, "android.intent.action.BATTERY_CHANGED"

invoke-direct {v2, v3}, Landroid/content/Intent;->(Ljava/lang/String;)V

.line 398
.local v2, intent:Landroid/content/Intent;
const/high16 v3, 0x6000

invoke-virtual {v2, v3}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;

.line 401
invoke-direct {p0}, Lcom/android/server/BatteryService;->getBatteryLevel1Step()V
iget v3, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I

invoke-direct {p0, v3}, Lcom/android/server/BatteryService;->getIcon(I)I

move-result v1

.line 403
.local v1, icon:I
const-string v3, "status"

iget v5, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I
const/16 v6, 0x64
const/16 v7, 0x5

iget v4, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

if-ne v4, v7, :cond_2
if-ge v5, v6, :cond_3

const/16 v4, 0x2

:cond_3
:cond_2

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;

.line 404
const-string v3, "health"

iget v4, p0, Lcom/android/server/BatteryService;->mBatteryHealth:I

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;

.line 405
const-string v3, "present"

iget-boolean v4, p0, Lcom/android/server/BatteryService;->mBatteryPresent:Z

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;

.line 406
const-string v3, "level"

iget v4, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;



解説面倒くさいからソースから読み取って下さい 糸冬

書き換えてるのは3箇所で、
1)invoke-direct {p0, v3}, Lcom/android/server/BatteryService;->getIcon(I)Iのv3の値を1%stepの値に
2)status投げてる所をさっき書いたBatteryピクトで割り込ませたのと同じ処理させてる
3)levelを1%stepのものに

元ネタはmeyskldとかいう人のこれ
あれ - Motorola Milestone2のBatteryLevelを1%Stepにしてみた


( ó㉨ò)もっとスマートな実装したいっすね…

2011年9月12日月曜日

Motorola Droid3 XT862のBatteryLevelを1%Stepにしてみた



smaliのコードは以前書いたコレと同じ
Motorola Milestone2のBatteryLevelを1%Stepにしてみた

インテント飛ばしてる場所だけちょいと違うのでメモ
/smali/com/android/server/BatteryService.smali

#iget v4, p0, Lcom/android/server/BatteryService;->mBatteryLevel:I

invoke-direct {p0}, Lcom/android/server/BatteryService;->getBatteryLevel1Step()V

iget v4, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;


需要あるか分からんがとりあえず置いておく…
DROID3XT862 5.6.890 Battery1PercentStepMod http://bit.ly/om3w7W

2011/09/13 追記
基本的にはこの処理で問題無い感じではあるのだがイケてない、95%でBatteryFullです通知出るのでそのうちなんとかします…

2011/09/14 めも…
こんな感じの処理を追加した…あまり自信無い…

const-string v3, "status"

invoke-direct {p0}, Lcom/android/server/BatteryService;->getBatteryLevel1Step()V
iget v5, p0, Lcom/android/server/BatteryService;->mBatteryLevel1Step:I
const/16 v6, 0x64
const/16 v7, 0x5

iget v4, p0, Lcom/android/server/BatteryService;->mBatteryStatus:I

if-ne v4, v7, :cond_2
if-ge v5, v6, :cond_3

const/16 v4, 0x2

:cond_3
:cond_2

invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;

2011年9月10日土曜日

Motorola Droid3 XT862のフルリカバリが可能に



systemファイルいじり放題だね!

[Recovery] RSD v5.4.3 and 5.5.184 (aka 5.6.890) fastboot partitions/flashable zip

手順


1.電源を落とす
2.キーボードのMを押しながら電源を入れる
3.VolDownキーでAP Fastbootまでカーソルを移動させる
4.VolUpキーを押下し、Fastbootモードに入る。

5.swu.zipを解凍する。
6.RSDLiteを立ち上げ、VRZ_XT862_5.5.1_84_D3G-55_1FF_01.xmlを選択
7.Droid3をPCに接続し、RSDLiteがDroid3を認識する事を確認する。
8.下のリストに表示されているDroid3を選択
9.Startボタンを押下
10.コーヒーでも飲みながら焼きあがるのを待つ

ここもダメだよ! TOSHIBA IS12T au by KDDI


ナニ芝さんでしたっけ?製造してるの?

検索ボタンの動作がダメ



PeopleHubを開いた時の画面です。
アドレス帳検索しようと思った際、ナビキーの検索ボタン(物理キーの方)を押したくなると思いますが押しちゃダメです、押すとbingが立ち上がります…
画面上に表示されている検索ボタンとナビキーのボタンの挙動が異なるのはイマイチすぎです、MSさん…

日本語の扱い



設定の「地域&言語」で表示言語と地域設定を日本語以外にするとちょっと悲しい事になります…
アルファベット表記の方がカッコイイというか日本語表記だとダサすぎると感じる人、結構多いかと思いますが、

表示言語に日本語以外、例えばEnglishを設定するとUIが英語表記になるのですが日本語が中華フォントで表示されるようになります…

地域設定の方に関しては上の写真を見ていただければ分かるかと思いますが、アドレス帳などがアルファベットとその他という扱いになり、日本語で名前が登録されている人は全部地球アイコン?に入ってしまいます。

上手く説明出来ないのですがUIダサいの我慢して全て日本語設定で使うのが良いのかなと…

Office2003形式の文書が編集出来ない




ななふぉ - Windows Phone 7.5 は Office 2003 形式の文書を編集できない

Office 2003形式の文書がメインの企業って多いと思います…ウチも2003ですね。
この辺の扱いについては売り手側もあまり理解できていなく、「2003形式も編集可能ですよ!」と説明していたショップもあったそうです、フォロワーさん曰く



Androidですらマトモな対応が出来ないショップが多い中、このタイミングでWP7出すって何考えてるんでしょうかね…

2011年9月9日金曜日

ここがダメだよ! TOSHIBA IS12T au by KDDI



国内初のWindowsPhone7搭載SmartphoneでOS7.5Mango搭載端末としては世界初となる。
良いところも沢山あるのだが悪いところ中心にダラダラと書いてみる。

ちなみに書いてる人はAndroidを2年、iPhoneを1年(3GS)、WP7を一ヶ月(htc7Mozart)、WM6.1を1年(TouchDiamond)ほど使用してきた人です。

キャリアメール(ezweb.ne.jp)が使えない


私はあまり使わないのだがキャリアメール未対応だと日本市場では売れない傾向にあるので…

SMS(Cメール)が受信のみで送信は出来ない


送信ボタンはあるのに押したらエラーで送れませんでした!ってなんやねん!

スクリーンキャプチャーが撮れない


  ∧_∧_         __
 ( ・∀|[ニ:|ol         | i \ \
 ( つ ∩ ̄         | i  l =l
 と_)_)          | |__ノ  ノ
               | ̄ ̄| ̄ ̄|

LEDによる通知機能が無い


htc7Mozartは不在着信とSMSはLEDで通知してくれたのにIS12Tにはそれが無い。
充電中に窓ボタンが赤く光り、充電が完了すると緑になるのでHW的には対応出来そうではあるが。

ボリューム設定が個別に行えない


着信音も通知音、メディア再生も全て同じ…イヤホンで音楽を聴くのにはボリューム15位がベストなのに15だと着信音小さ過ぎで聞こえねーよ!って事が起こる。
そもそもIS12Tのスピーカー音小さすぎ…防水端末だからある程度仕方ないのだろうが。

ナビキーが押しにくい


なんで陥没気味なのさ…

勝手に電源が落ちる、スリープから復帰しなくなる


1週間弱サブ端末として使用したが電源落ち、スリープ復帰コケが1日1回は発生している。


アプリが少ないだとか日本のliveアカウントだとマーケットに出てこないアプリ多すぎだとかMapアプリがやる気なさすぎだとか他にも色々あるのだがね…

カメラキレイだしシャッター音小さかったりバッテリー持ち良かったりと良いところもあります。
ただ、正直人に勧められる端末では無いし、携帯電話を売る立場の人からしてもどうやって売ったら良いのか分からない端末だと思います。

日本で初めてのAndroid端末、docomo HT-03Aと同じ臭がします…この端末も無かったことにするのでしょうかね?

Verizon Wireless Motorola Droid3:Review



もう既に手元には無いのだがMotorola Milestone、Milestone2はとても気に入っていたSmartphoneでHT-03A(htc Magic)でAndroidデビューをしてから20台弱のAndroid端末を購入したが半年以上メイン端末として使用したのはMotorolaのこの2台位だ。

今回手にしたのはMotorolaMilestoneシリーズでは無く、Verizon Wirelessから発売されたDroid3(XT862)で、iPhoneに正面から喧嘩を売る形でデビューしたDroid(A855)の3代目になる。

Spec Summary



  • OS:Android 2.3.4(Gingerbread)

  • NETWORK:WCDMA 850/1900/2100, CDMA 800/1900, GSM 850/900/1800/1900

  • SIZE (H x W x D):64.1 x 123.3 x 12.9 mm

  • WEIGHT:184 grams

  • DISPLAY TYPE:TFT (16M colors), CorningR GorillaR Glass

  • DISPLAY SIZE:4-in.; qHD (960 x 540) PenTile matrix screen

  • SoC:TI OMAP 4430 1.0GHz

  • RAM:512MB

  • ROM:16GB

  • microSD:up to 32GB

  • Camera:8MP AutoFocus LEDFlash

  • FrontCamera:0.3MP

  • Battery:1540mAh BF5X



今更RAM512MBは無いだろ…というのが正直な感想で実際に使用していてもちょっと足りないなぁと感じる事がある。
直前までSamsungGalaxySIIというモンスターマシンを使っていたというのもあるがブラウザでFlashを再生したり、GoogleMapsを使用した際に少しストレスを感じる。
また、これらのメモリを多く使用するアプリケーションを立ち上げた後、ホームに戻るとアイコンやWidgetが再描画されるホーム落ちと呼ばれる現象が発生する事がある。
これに関してはHomeLauncherをLauncherProやADW Launcherなどのサードパーティー製のものに入れ替えることで改善可能ではある。

Good


Body


184グラムと物理キーボードを搭載した端末の中でも重いDroid3ではあるがとにかくボディの作りが良く、SGS2の様なおもちゃっぽさは無い。
キーボードのスライダー部にはSonyEricsson端末のようなスプリングアシストが無いので「シャコッ」というよりは「ヌスッ」といった感じだろうか。

Physical Keyboard



横スライド物理QWERTYキーボードを搭載したDroidシリーズの中では最高の出来だろう。
筐体サイズが一回り大きくなり、それに伴いキーボードにも余裕が出来たためか押しやすくなった。
以前使用していたSidekick4Gには劣るが程良いクリック感もあり、タイプしてて気持ちの良い素晴らしいキーボードだ。

qHD Display


PenTile matrix screenなところはBadだが一度qHDな端末を使ってしまうとFWVGA以下のLow resolution端末には戻れない。

3G Radio


docomoのデータ定額SIMを挿入し使用しているが初代Milestoneの時にあったようなHSUPAエリアでのパケ詰まりの様な現象も起こらず快適に使用出来ている。
FOMAプラスエリアには対応していないため圏外となるエリアはあるものの受信感度そのものは悪くないといった印象

GPS


GPSを掴むのも早いし精度もなかなかのモノである。以前使用していたSGS2はとにかくGPSがダメで屋外に居るのにも関わらずなかなかGPSを掴んでくれない困った端末であった。

Not so good...


Camera


Milestone、Milestone2やDefyに比べればマシなのだが良くは無い。特に暗いところでの撮影が苦手でメモ程度にしか使えないといった感じである。

PenTile matrix screen


qHDなのは良いのだがPenTileなのはBad…qHDディスプレイを採用したINFOBAR A01と比べるとDroid3のqHD PenTileディスプレイは粒状感が気になる。

RAM512MB


冒頭でも軽く書いたが今更RAM512MBというのはどうなんでしょう…Droid3はフラグシップモデルでは無いのでコスト優先で512MBとなったのだろうが個人的にはあと$100出すからRAM1GBにして欲しいと思う。
新MotoblurのHomeLauncherがメモリ食いなのでRAM512MBでは厳しくホーム落ちする事が多い。

Conclusion


スペック的には微妙なところ、特にRAM容量に関してはストレスを感じる場面はあるのでスペックを気にする人にはお勧めはしない、SamsungGalaxySIIというモンスタースペックなSmartphoneがほぼ同じ値段で買えますので。
キーボードが良く、そこそこスペックの高いAndroid端末が欲しいといった人には良い端末なのではなかろうか。

はらへーちょ