2013年5月11日土曜日

Motorola RAZR i XT890のNFCが常時反応するようにする

@kassy_kz が面白そうな事をしていたので試してみた。

中二病でも開発がしたい

Nexus持ってないのでsmali読んで適当に書き換える。

/system/app/Nfc.apk

com/android/nfc/NfcService.smali


2120行目あたり
    iget-boolean v1, p0, Lcom/android/nfc/NfcService;->mNfcPollingEnabled:Z

    const/4 v1, 0x0
    if-eqz v1, :cond_7

    .line 2204
    :cond_6
    const-string v1, "NfcService"

    const-string v2, "NFC-C OFF, disconnect"

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

    .line 2205
    const/4 v1, 0x0

    iput-boolean v1, p0, Lcom/android/nfc/NfcService;->mNfcPollingEnabled:Z

2400行目あたり
    iget-boolean v1, p0, Lcom/android/nfc/NfcService;->mNfcPollingEnabled:Z

    const/4 v1, 0x0
    if-eqz v1, :cond_10

    .line 2267
    :cond_16
    const-string v1, "NfcService"

    const-string v2, "NFC-C OFF"

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

    .line 2268
    const/4 v1, 0x0

    iput-boolean v1, p0, Lcom/android/nfc/NfcService;->mNfcPollingEnabled:Z

条件分岐「if-eqz v1, :cond_xx」の手前に「const/4 v1, 0x0」と書いてやって潰した。
POLLING_MODEの変更だと一つ目のNFC-C OFFを潰せないのでこんな感じに、うごきゃいいんだよ、面倒くさい。


NFCタグ読み込んだタイミングでスクリーンオンにしたりロック解除したりするのはみんなのNFCアプリ側でやればいーんじゃないですかね。

TaskerやLlamaのNFCタグ読んであーだこーだ機能使えば面白い使い方出来るかもね?



電力消費量の増加がどの程度あるかは気が向いたら測定してみる。