Nexus 6 Android Marshmallow/Nougat NFC SWP-SIM 支援

Goole Nexus系列從4/5到現在使用的6,只有Nexus 6有支援SWP-SIM NFC行動支付

因為Google想推廣Host-based Card Emulation 跟電信商的SWP-SIM UICC路線差異太大

所以Nexus 6會支援SWP-SIM NFC行動支付,實在是個驚喜

Nexus 6一開始推出之時(Android Lollipop 5.0),原本是有支援SWP-SIM NFC行動支付功能的

但是在升級Android Marshmallow 6.0之後,突然之間電信悠遊卡卻無法使用了

一開始是EasyHami不支援Android Marshmallow 6.0,只好等待更新

到了11/5,EasyHami更新支援Android Marshmallow 6.0之後 Nexus 6還是無法使用,也不得安裝的情形下,開始了這一連串的研究之路

有了上次Nexus 5的研究經驗(最後還是因為沒有對應的OpenMobileAPI,因此不支援),可以參考下列這幾個討論串

大概可以得知問題之所在,在多次的Try & Error後終於成功了

  1. 要有SEEK for Android (OpenMobileAPI)支援
  2. NFC相關設定,要開啟UICC支援

相關聲明:

  1. 相關程式檔案僅供研究使用,版權屬於原始公司所有
  2. 修改相關系統檔案會有風險,本人並不負責修改檔案之後所造成之任何影響

要修改相關設定,手機要先Root過,可以參考Nexus Root Toolkit

安裝好之後,EasyHami要移除後重開機,讓相關服務啟動之後再安裝EasyHami –> 非常重要的一點

2016-08-25 實際測試Android Nougat 7.0使用此種方法一樣可以正常使用!

相關系統檔案下載:nexus6_marshmallow_nfc_swp (1362)

檔案路徑示意如下:

  • /system/etc/libnfc-brcm-20795a10.conf –> 修改
  • /system/etc/libnfc-brcm.conf –> 修改

libnfc.xml

  •  /system/etc/permissions/org.simalliance.openmobileapi.xml –> 新增

org.simalliance.openmobileapi.xml

  • /system/framework/org.simalliance.openmobileapi.jar –> 新增

org.simalliance.openmobileapi.jar

  • /system/priv-app/SmartcardService/SmartcardService.apk –> 新增

  SmartcardService

  • lock

    請問這修改法也適合nexus 5嗎?

    • 沒辦法喔!
      因為Nexus 5一開始就沒有OpenMobileAPI(這需要廠商自己implement)
      之前試過很多方式都無法使用,只能換手機了

      • lock

        恩恩!
        感謝回覆!

  • Ephraim Wee

    请问可以在 nexus6p (marshmallow) 上用你的修改吗?

    • 不行喔,看了Nexus 6P的Factory Image
      並沒有相關OpenMobileAPI(這需要廠商自己implement)
      而且相關NFC設定檔並不相同
      可能要其他高手提供了

      • Ephraim Wee

        谢谢你那么快就回答了!还花费时间去看了Nexus 6P的Factory Image
        那就希望花为会implement!

        • 通常如果上市時沒有implement的話
          後來新增這功能機率很低
          (連Nexus 6原本有支援都可以拿掉@@)
          所以除非有其他高手,或者華為出了一支配備類似可以拿相關API來用
          可能還是不要保持太大希望比較好@@

  • Athraugh TAI

    這個修改我找了很久,

    請教一下,新增的放入的檔案(3個)設定權限要怎麼選呢?

    例如permissions下並不是每個檔案的權限都事一樣的?

    • Athraugh TAI

      修正一下,我是說例如permissions 資料夾底下的com.google.android.maps.xml的權限設定為”rwx ,r-x ,r-x”,
      但你建議的org.simalliance.openmobileapi.xml 只設定”rw- ,r– ,r–“這樣的差別在於?

      • Hi,基本上system下的檔案權限設定應該都要一樣喔
        你看到檔案會有不一樣,表示有被改過
        不然有可能因為安全機制,是不會被執行的
        預設的檔案都是644,rw-r–r–

  • Athraugh TAI

    在請教一下,我的nexus6 Android6.0 已經成功裝Easy Hami,
    也到便利商店加值成功,
    但我看到其他手機機型可在不開啟Easy Hami 或者關閉手機螢幕的狀況下成功付款與通過捷運一卡通閘門,
    但是我的手機螢幕關閉下就感應失敗,
    有哪個地方漏掉了嗎?

  • Athraugh TAI

    Joseph你好, 我有成功5次進出捷運閘門,但是每次辨識成功前,專門感應器會不斷報 無法辨識,我不管怎麼調整手機感應角度也是,試過4個不同捷運站都無改善,請問?

    • 嗯,這是因為台北捷運閘門讀卡機的問題
      其他超商/公車的讀卡機都是可以work的
      我有寫信去問過一卡通,他們說,除非北捷提供相關協助,不然他們也是沒有辦法處理的

      而且Nexus6並不在官方支援名單上,所以我覺得有解的機率很低

      • Athraugh TAI

        我手上沒有一卡通的實體卡,沒法比對。 所以用Joseph 的Nexus6 去北捷閘門感應,也遇到辨識錯誤多次後才會成功嗎? 我在想會不會與我們用的替代”OpenMobileAPI” 造成的呢?

        • 不是喔,OpenMobileAPI是APP跟SIM卡中間的媒介,沒有他是絕對不行的
          在Android 5.0時代,我就有刷過台北捷運那個黃色讀卡機了(悠遊卡)一樣刷不過
          台北捷運只會說實體卡刷的過,NFC卡的問題是APP跟手機,他們不會管

  • Athraugh TAI

    我可以把你這篇文章貼到PTT上,會附註來源連結?

    • Sure,當然可以
      希望有更多高手可以解決這問題阿

  • Winston Lu

    Hi Joseph, 我已經將nexus6_marshmallow_nfc_swp (44) 內所有檔案放入指定位置 並且設定權限644

    重開機後仍然無法下載easy hami, t-wallet 也無法偵測到安全元件

    請問我哪裡做錯了呢? (seek for android 要如何安裝)

    • 1. 你有重新開機過了嗎?
      2. 開啟easy hami的時候要用行動網路,不能用wifi
      3. NFC有開啟嗎?
      4. 放一下你手機的相關目錄貼圖來看看是不是有漏

      • Winston Lu

        Hi Joseph,
        1. 做任何修改都會重開機
        2. easy hami 無法從play 下載
        3. NFC 有開啟

        • EasyHami無法從Google Play上下載是因為Google覺得手機上沒有OpenMobileAPI
          如果你已經安裝EasyHami的話,Google Play畫面應該不會是這樣

          1. /system/etc/permissions/org.simalliance.openmobileapi.xml 有存在嗎?

          2. 設定->開發人員選項->正在運作的服務,裡面有SmartCardService嗎? (如果有裝EasyHami,會在Easy Hami底下)
          3. 設定->感應付款->預設付款應用程式,有設定為EasyHami嗎?

          • Winston Lu

            1. 有存在

            2. 沒有看到smartcardservice

            3. 已設定完畢

            目前開啟easy hami 卡在第一個畫面loading

          • 那你這樣就是那個SmartcardService沒有被正常啟動的關係
            你可能要用logcat去抓一下log來看才知道問題在哪了
            下指令:adb.exe logcat -d > log.txt

          • Winston Lu
          • Winston Lu

            Smartcard API v4.0.0 我下載了但不知道該如何使用

            不曉得是否有關聯

          • Smartcard API就是 /system/framework/org.simalliance.openmobileapi.jar

            12-06 11:30:18.157 890 901 W ActivityManager: Unable to start service Intent { act=org.simalliance.openmobileapi.service.ISmartcardService cmp=org.simalliance.openmobileapi.service/.SmartcardService } U=0: not found

            有問題的看起來是 /system/framework/org.simalliance.openmobileapi.jar 跟 /system/priv-app/SmartcardService/SmartcardService.apk 資料有問題

            你可能要重新安裝這幾個檔案,還有把相關權限都看一下才行
            log檔案可以砍掉了

          • Winston Lu

            好的!! 謝謝您的幫忙

          • 不客氣,有問題再留言吧!

          • Winston Lu

            hi joseph, 我最後把所有檔案移除 重新放置與設定權限後

            開啟easy hami 按下開始使用會出現 初始化失敗的訊息

            各檔案permission 的部分都是0644 除了SmartcardService 是0755

            使用easyhami 1.2.2

            不曉得是什麼問題了

          • 至少已經有SmartcardService了,表示你這些檔案修改已經OK了
            你再弄一下log,幫你找找看原因

          • 你把EasyHami移除掉,再重新安裝!
            看來快要成功了

          • Winston Lu

            居然一個重新安裝就搞定了 = . . = 感謝joseph 的幫忙

            分享給如果一樣卡關的人

            首先手機要ROOT 並且使用root explorer 類似軟體將檔案放到指定位置

            接下來修改檔案權限如joseph 附圖

            如果已經有安裝easy hami 的話要先移除*3

            很重要所以說三次!!

            自己胡搞瞎搞一個下午無果的過來人…

          • 哈,恭喜拉,以後如果不幸遇到就會知道怎麼處理了XD

  • Winston Lu

    最近刷了6.0.1 之後 root explorer 或其他的都無法將檔案移入system 資料夾內

    不曉得是否有人碰到過?

  • Athraugh TAI

    從上一週開始,使用nexus6 + swp sim 一卡通,通過北捷閘門時,感應失敗時間從去年的30秒降低到現在的5秒,是北捷對閘門程式有修改!? 不知道其他人有這樣的感覺

    • 我每次感應,直接很快就是顯示失敗
      不會在那邊卡很久,應該是角度問題
      後來就直接放棄不用了

      • Athraugh TAI

        我這週用起來發現,多個捷運站 (101站,圓山,關渡),一卡通 with easy hami, 只要感應一次就通過。 借用公私似乎對這個狀況有調教了。 joseph 有空可以再試試看喔!

        • 哇,終於可以抱持一點希望了,謝謝,再來試試看!

  • 迅捷

    你好 使用你的方法之后 NFC无法开启 甚至消失,smartcardservice有没有odex文件?

    • 無法啟用NFC表示你的過程失敗了,檔案權限等資料錯誤
      要確認相關檔案/權限都存在/正確

      SmartcardService沒有odex,只有jar檔

      • 迅捷

        啊 谢谢 不过我仔细看过评论后 ,也许是我手机问题,我用的Moto x 2014 ,也就是说不能使用您提供的openmobileapi吧?

        • 嗯,這邊提供的僅限於Google Nexus 6
          並不支援Moto X

          • 迅捷

            可否只更改俩个conf文件 以及smartservices APK?

          • 不只,相關檔案都在文章清單裡了
            其他機型並不是很了解

          • 迅捷

            好的,多谢

  • 真圓張

    感謝版主
    讓我今天換了sim卡申請了台哥大的wali
    輕鬆完成儲值 用捷運機器查詢餘額也很容易
    進站感應也蠻順利的
    但出站可以回收短程票的那裡蠻難成功的
    一直要我重新感應 角度喬很多次才ok
    大家有類似問題嗎?

  • 真圓張

    感謝版主
    讓我今天換了sim卡申請了台哥大的wali
    輕鬆完成儲值 用捷運機器查詢餘額也很容易
    進站感應也蠻順利的
    但出站可以回收單程票(藍色塑膠幣)的那裡蠻難成功的
    一直要我重新感應 角度喬很多次才ok
    大家有類似問題嗎?

  • Weakapp

    可以請問一下你 Smartcardservice.apk 怎麼編出來的?

    • Weakapp

      補充一下, 我有 其他兩個檔案但就少了 SmartcardService , 直接拿來用也不行. 我的 SDK 版本太低不能使用.

      • 這個apk是android 5.0時代就有的了
        我只是去先前的rom copy出來的

        • Weakapp

          了解. 感謝.

  • 徐偉恩(嘎逼)

    請問一下,
    我也照您上面做了
    打開後也去把NFC打開了,
    但結果變成這個畫面了
    我已經裝了NFC的SIM卡了呀,
    我的手機是 NEXUS 6
    系統是 Android 6.0.1

    • 你這問題應該問台哥大,我不了解他們APP的運作方式為何

      • 徐偉恩(嘎逼)

        感謝您
        我也有打電話問台哥大了 XD
        他們也不知道為什麼不能使用 囧rz

        • 你可以看一下你正在運作的Service有沒有SmartcardService
          如果有的話,可以試試重新安裝app

          • 徐偉恩(嘎逼)

            好,我再馬上測試看看
            感謝您

          • 徐偉恩(嘎逼)

            重裝了,還是一樣的畫面,非常感謝您的幫忙

          • 中華的服務一開始開通,限制要用行動網路,不能用WIFI
            台哥大的不知道有沒有此限制就是了

          • 徐偉恩(嘎逼)

            感謝您的耐心幫忙,我剛又去測試了用4G去打開,也是一樣的畫面,我明天再去試試別的手機,說不定我中奬了,拿到一張NFC壞掉的卡片,哈哈!
            也非常感謝您!

          • seanwu

            我的也是nexus6, 也是有跟你一樣的問題, 我最後成功了,
            請再確認你的檔案權限都跟joseph的一樣,
            都一樣後, 移除wali app,一定是要移除哦, 只清空資料沒用,
            重開機後再重新安裝

            看看行不行

          • 徐偉恩(嘎逼)

            感謝您,我全部再重新放一次,
            然後權限也全部再重設一次,
            現在成功進入軟體了,
            非常謝謝您!

  • guest

    這方法能用在nexus 6p上面嗎? 謝謝

    • 不行喔,看了Nexus 6P的Factory Image
      並沒有相關OpenMobileAPI(這需要廠商自己implement)
      而且相關NFC設定檔並不相同
      可能要其他高手提供了

  • Danny Ku

    Joseph Liu
    你好 我按此步驟安裝了5次 一樣不行
    我的系統6.0.1 –xt1103–MMB29V
    OpenMobileAPI 是要如何開啟
    感謝

  • Winston Lu

    hey joseph~

    最近幾個月不曉得您在台北捷運閘門口是否有卡關的情形(請請請請請請請~重新感應)

    是不是最新的easy hami 造成的呢??

    另外再7-11 全家 都很正常 但在萊爾富也都感應不到

    • 台北捷運閘門的黃色讀卡機,基本上沒成功過Orz
      應該也不是EasyHami導致的,應該是讀卡機的設定問題
      最近中華店有推出預載悠遊卡的SIM卡,不知道有沒有人用過?感應不知道會不會變好?
      如果是悠遊卡的話,在一般閘門感應會比較好一點
      而且最近台北捷運為了7月要在一般閘門多卡通(悠遊卡/一卡通等)
      有大批更換一般閘門的讀卡機,感應好像有比較好

      至於超商的話,我在全家/萊爾富都用得很正常
      應該是那間店的感應機器有問題

  • Athraugh TAI

    我的悠遊電信nfc( 中華電信版 ),目前回報一下。 經過多個捷運閘門測試, 已經與正常悠遊卡一樣, 不會有感應失敗的 issue, 一次就成功。 另外儲值金額低於 車費,也可以允許一次的負值出現。

    • 感謝回報!
      應該是7/1一卡通也可以在台北捷運使用之後
      閘門軟體也有更新的關係
      希望大家的際遇都能跟你一樣XD

  • chien

    請問這方法能套用在nexus 6P上嗎?謝謝

    • 不行喔,這個lib目前只有Nexus 6可用,要看有沒有其他人提供lib

      • chien

        多謝

  • Winston Lu

    有人在 nougat 系統上測試過可否這樣使用了嗎?

    • 文章裡面已經有加註7.0也可以使用了
      我目前就是使用7.0

      • Winston Lu

        oh great! 今天來升級~

        btw pixel XL 的定價讓人難以下手..

        • 真的….跟iPhone一樣的定價,只好繼續用Nexus 6…

  • hi john

    你好,我有root,也有下載檔案放置相對的路徑
    開起easy Hami 一直處理中,請稍後。
    是不是我漏了什麼?

    • 我不知道你的處理中是在哪個階段處理中

      通常會有問題,不是網路的問題(第一次要用4G網路)就是你安裝失敗/權限有問題等
      可以看一下先前的討論串全部重新測試看看

      記得絕對不能先裝easy hami,要先把lib弄好之後重新開機才能安裝easy hami

  • 楊傑

    哈囉,我的lg g3刷了cm13後,nfc和easy hami均無法用,嘗試用了大大提供的方法,結果easy hami可以顯示餘額了,但用捷運的讀卡機還是無法顯示餘額和儲值,不知是否有人解決問題了嗎?感謝

    • 原本LG G3應該就有官方支援NFC SIM,但是CM沒有這些檔案,所以會失敗
      你應該刷回原本G3的ROM,把相關檔案都copy出來
      再刷CM後套用那些檔案,應該就可以了

      這部份我沒辦法提供什麼協助,你可能要自己想辦法處理

  • 周方浩

    請問此方法可用在5X上嗎?謝謝

    • 不行喔,這個lib目前只有Nexus 6可用,要看有沒有其他人提供lib

  • 7.1.1 可用吗?这么设置后是否只能用SWP,HCE就不能用了?

    • 7.1.1可以使用
      SWP 跟HCE可以同時並存

  • 额 提个请求 能否做个 Magisk 模块 这样就可以 Systemless 了

  • Athraugh TAI

    我幫 還在 中華電信的朋友的nexus6 裝了Joseph Liu NFC API, 但是搭配Hami Wallet, APP可以成功開啟,但要加入悠遊卡時卻一直說Sim card 不是NFC版本。
    我嘗試換成台灣大哥大 的 NFC Sim card搭配 wali智慧錢包卻可成功載入 悠遊卡。
    有哪位高手可以教一下嗎?

  • Athraugh TAI

    請問 還是使用Nexus6 +”Joseph Liu 的nexus6_marshmallow_nfc_swp” 的各位,安裝 Hami Wallet後 還可以正常使用嗎?

  • KK HH

    請問樓主

    下載的
    smartcard-api-4_0_0.tar.gz

    要如何安裝在

    Android Nougat 7.0 系統裡面

    來啟動

    要有SEEK for Android (OpenMobileAPI)支援

    謝謝。

    下載的
    nexus6_marshmallow_nfc_swp.7z
    解壓縮後 複製權限修改到系統裡面。