顯然,如果你有一個根深蒂固的手機,你可以利用com.android.nfc_extras
來訪問的功能,如卡仿真(Secure element Access Control on ICS 4.0.4)。com.android.nfc_extras的文檔?
我知道這是一個非官方的API,但有它的任何文件(正式或非正式)?或者另一方面,卡模擬比我意識到的要複雜得多?
顯然,如果你有一個根深蒂固的手機,你可以利用com.android.nfc_extras
來訪問的功能,如卡仿真(Secure element Access Control on ICS 4.0.4)。com.android.nfc_extras的文檔?
我知道這是一個非官方的API,但有它的任何文件(正式或非正式)?或者另一方面,卡模擬比我意識到的要複雜得多?
請記住,訪問安全元素和做卡片模擬實際上是兩個不同的事情。安全元素基本上是封閉的;你不能修改它。使用com.android.nfc_extras
可以打開或關閉通過安全元素的卡模擬。而已。
您可以從您的應用程序發送APDU到安全元素,例如與IsoDep
標記(在NFC堆棧的較低級別部分都使用相同的代碼路徑)進行通信。例如,請參閱http://nelenkov.blogspot.nl/2012/08/accessing-embedded-secure-element-in.html,瞭解如何執行此操作。
沒有文件。如果你想挖掘這個API,我建議你直接看源代碼。它並不多,只有兩個文件實現並定義了API。你可以得到一個副本,例如這裏:
http://source-android.frandroid.com/frameworks/base/nfc-extras/java/com/android/nfc_extras/
在API中,你會發現像執行環境,路由等概念,不要讓這些概念迷惑你。在結束所有你可以用NfcExtras界面做的是:
打開卡仿真設置與ROUTE_ON_WHEN_SCREEN_ON創建的路線。
通過設置「關閉」路線關閉卡仿真。
與嵌入式安全元件交換數據。
就是這樣!其餘的只是API糖,使事情看起來比實際情況更大。
一些額外的注意事項:
如果你想給你打電話需要將您的應用白名單中nfcee_access.xml文件中的功能定位在/ etc。如果您不自行列出白名單,則會收到訪問衝突異常。
有沒有辦法讓你的嵌入式安全元件或具有NFC功能的UICC存在於手機區別開來。
沒有辦法去跟具有NFC功能的UICC在手機中。您只能與嵌入式安全元件(也就是用於具有恩智浦芯片組的手機的SmartMX芯片)通信。與UICC本身的通信只能通過ISO7816接口的RID接口進行,並且如果可能的話,這是專有的。
最後但並非最不重要的:不保證該NfcExtras接口做任何事情。 Google電子錢包使用該界面,但移動支付市場是分割的,每個人都自己做湯。 我知道至少有一家大型移動支付提供商完全忽略了NfcExtras界面,將其禁用並使用他自己的隱藏機制來開啓和關閉。
我對你答案的最後一點感興趣。 _big_移動支付提供商如何使用他自己的_hidden_機制?通過生根電話? –
他們不需要根音電話。他們只是根據需要對軟件進行更改,然後告訴製造商應用該補丁並通過無線更新進行分發。 –