[{"data":1,"prerenderedAt":909},["ShallowReactive",2],{"post-2026-11-10-xiaomi-double-click-power-google-wallet-zh":3,"surround-2026-11-10-xiaomi-double-click-power-google-wallet-zh":900,"randomIndex-year-month-day-slug___zh-{\"year\":\"2026\",\"month\":\"11\",\"day\":\"10\",\"slug\":\"xiaomi-double-click-power-google-wallet\"}":54,"language-switch-year-month-day-slug___zh-{\"year\":\"2026\",\"month\":\"11\",\"day\":\"10\",\"slug\":\"xiaomi-double-click-power-google-wallet\"}-en":908},{"title":4,"date":5,"path":6,"tags":7,"body":12,"description":899},"让国行小米 15 双击电源键唤起 Google 钱包：其实只需要一条 adb 命令","2026-11-10","/2026/11/10/xiaomi-double-click-power-google-wallet",[8,9,10,11],"Android","Xiaomi","HyperOS","ADB",{"type":13,"value":14,"toc":883},"minimark",[15,25,40,78,81,85,102,106,121,128,134,141,147,150,157,165,174,180,183,189,202,205,259,262,268,271,277,308,320,324,327,332,337,341,356,362,409,421,427,431,434,440,456,459,510,513,570,573,639,645,649,652,659,662,754,757,768,771,810,813,819,835,847,850,879],[16,17,18,19,24],"p",{},"在",[20,21,23],"a",{"href":22},"/2026/02/20/xiaomi-china-version-fcm-push-debug/","上一篇关于 FCM 的文章","里我提到，我已经在为出国做准备了。现在人已经到了海外，日常坐车、买咖啡基本都是刷卡，Google 钱包就成了我手机上使用频率最高的 App 之一。但国行 HyperOS 的「双击电源键」只能打开小米钱包，每次掏出手机还得解锁、找图标、点开，节奏一下就被打乱了。",[16,26,27,28,34,35,39],{},"前几天我在 GitHub 上看到了 ",[20,29,33],{"href":30,"rel":31},"https://github.com/DustinYe/PowerWallet",[32],"nofollow","DustinYe/PowerWallet"," 这个项目，标题就是「双击小米手机电源键，直接打开 Google 钱包」，免 root，可惜只适配了小米 13 Ultra 的某一个 ROM 版本。我 fork 了一份打算搬到小米 15 上，折腾了一圈以后发现，",[36,37,38],"strong",{},"这件事在 HyperOS 4 上其实只需要一条 adb 命令","：",[41,42,47],"pre",{"className":43,"code":44,"language":45,"meta":46,"style":46},"language-bash shiki shiki-themes one-light one-dark-pro","adb shell settings put system double_click_power_key launch_QAW_wallet\n","bash","",[48,49,50],"code",{"__ignoreMap":46},[51,52,55,59,63,66,69,72,75],"span",{"class":53,"line":54},"line",1,[51,56,58],{"class":57},"sAdtL","adb",[51,60,62],{"class":61},"sDhpE"," shell",[51,64,65],{"class":61}," settings",[51,67,68],{"class":61}," put",[51,70,71],{"class":61}," system",[51,73,74],{"class":61}," double_click_power_key",[51,76,77],{"class":61}," launch_QAW_wallet\n",[16,79,80],{},"剩下的篇幅，我按「原生 Android 的机制 → 小米做了什么 → 原项目做了什么 → 我的 fork 做了什么」的顺序讲清楚这条命令为什么有效，以及为什么最后还是要做成一个 App。",[82,83,84],"h2",{"id":84},"测试环境",[86,87,88,96,99],"ul",{},[89,90,91,92,95],"li",{},"小米 15 国内版（dada），HyperOS ",[48,93,94],{},"OS4.0.0.22.XOCCNXM","，Android 17",[89,97,98],{},"已开启「谷歌基础服务」，Google 钱包已安装并绑卡，默认 NFC 付款应用为 Google Pay",[89,100,101],{},"未解锁 Bootloader，无 root",[82,103,105],{"id":104},"原生-android-的机制","原生 Android 的机制",[16,107,108,109,112,113,116,117,120],{},"Android 11 引入了一套叫 ",[36,110,111],{},"Quick Access Wallet","（QAW，快速访问钱包）的系统接口：钱包应用实现一个 ",[48,114,115],{},"QuickAccessWalletService","，系统就能在电源菜单、锁屏或者手势里直接调起它。Google 钱包的这个服务由 Play 服务提供，叫 ",[48,118,119],{},"com.google.android.gms/.tapandpay.globalactions.WalletQuickAccessWalletService","。",[16,122,123,124,127],{},"值得注意的是，QAW 并不绑定某个特定的钱包，而是",[36,125,126],{},"先读取默认 NFC 付款应用，再去这个应用里找 QAW 服务","。所以「打开哪个钱包」其实是由默认付款应用决定的。小米钱包并没有实现 QAW 服务，我实测把默认付款应用改成小米钱包以后，双击电源键只会弹出一句提示：",[129,130,131],"blockquote",{},[16,132,133],{},"当前默认钱包不支持双击电源键打开，请修改设置",[16,135,136,137,140],{},"也就是说，",[48,138,139],{},"launch_QAW_wallet"," 只能用来打开 Google 钱包这类实现了 QAW 的钱包，打不开小米钱包。",[16,142,143,144,120],{},"后来原生 Android 又在「双击电源键」这个手势上加入了「打开钱包」的选项，对应 Secure 表里的 ",[48,145,146],{},"double_tap_power_button_gesture=1",[82,148,149],{"id":149},"小米做了什么",[16,151,152,153,156],{},"HyperOS 并不直接使用原生的那个设置，而是用自己的 ",[48,154,155],{},"double_click_power_key","（位于 System 表）来决定双击电源键做什么，再同步给原生设置。日志里能看到这个同步过程：",[41,158,163],{"className":159,"code":161,"language":162},[160],"language-text","MiuiSingKeyShortcutObserver: DTPB-Wallet syncAosp function=launch_QAW_wallet enabled=1 gesture=1\n","text",[48,164,161],{"__ignoreMap":46},[16,166,167,168,171,172,39],{},"DTPB 就是 Double Tap Power Button。国行的设置界面里只能选小米钱包（",[48,169,170],{},"mi_pay","）、乘车码、相机等选项，但系统开机时打印的功能列表里，其实还有一个 ",[48,173,139],{},[41,175,178],{"className":176,"code":177,"language":162},[160],"ShortcutFunctionManager: init config,function=mi_pay, supportActions=[double_click_power_key]\nShortcutFunctionManager: init config,function=launch_QAW_wallet, supportActions=[double_click_power_key]\n",[48,179,177],{"__ignoreMap":46},[16,181,182],{},"它就是原生的「打开钱包」。国行之所以看不到这个选项，是因为它被定制配置关掉了：",[41,184,187],{"className":185,"code":186,"language":162},[160],"InputFeature: DTPB-Wallet support=false reason=disabledByCustFeature\n",[48,188,186],{"__ignoreMap":46},[16,190,191,192,195,196,198,199,120],{},"系统还注册了 ",[48,193,194],{},"MIUI_REGION_CHANGED"," 广播，我猜这个开关是按地区下发的。但它只是被藏了起来，运行时并没有人拦它：我手动把值改成 ",[48,197,139],{}," 以后，",[36,200,201],{},"解锁和锁屏状态下双击都直接打开了 Google 钱包",[16,203,204],{},"把原生 Android 和小米的逻辑放在一起，双击电源键之后发生的事情是这样的：",[41,206,210],{"className":207,"code":208,"language":209,"meta":46,"style":46},"language-mermaid shiki shiki-themes one-light one-dark-pro","flowchart TD\n    Press([\"双击电源键\"]) --> Key{\"double_click_power_key\"}\n    Key -->|\"mi_pay\"| Mi[\"小米钱包\"]\n    Key -->|\"launch_QAW_wallet\"| NFC{\"默认 NFC 付款应用\"}\n    Key -->|\"null / google_pay\"| Nothing[\"什么都不做\"]\n    NFC -->|\"Google Pay\"| QAW[\"Play 服务的\u003Cbr/>\u003Cb style='color:#b45309'>QuickAccessWalletService\u003C/b>\"]\n    QAW --> GW[\"Google 钱包\"]\n    NFC -->|\"小米钱包\"| Tip[\"提示：当前默认钱包\u003Cbr/>不支持双击电源键打开\"]\n","mermaid",[48,211,212,217,223,229,235,241,247,253],{"__ignoreMap":46},[51,213,214],{"class":53,"line":54},[51,215,216],{},"flowchart TD\n",[51,218,220],{"class":53,"line":219},2,[51,221,222],{},"    Press([\"双击电源键\"]) --> Key{\"double_click_power_key\"}\n",[51,224,226],{"class":53,"line":225},3,[51,227,228],{},"    Key -->|\"mi_pay\"| Mi[\"小米钱包\"]\n",[51,230,232],{"class":53,"line":231},4,[51,233,234],{},"    Key -->|\"launch_QAW_wallet\"| NFC{\"默认 NFC 付款应用\"}\n",[51,236,238],{"class":53,"line":237},5,[51,239,240],{},"    Key -->|\"null / google_pay\"| Nothing[\"什么都不做\"]\n",[51,242,244],{"class":53,"line":243},6,[51,245,246],{},"    NFC -->|\"Google Pay\"| QAW[\"Play 服务的\u003Cbr/>\u003Cb style='color:#b45309'>QuickAccessWalletService\u003C/b>\"]\n",[51,248,250],{"class":53,"line":249},7,[51,251,252],{},"    QAW --> GW[\"Google 钱包\"]\n",[51,254,256],{"class":53,"line":255},8,[51,257,258],{},"    NFC -->|\"小米钱包\"| Tip[\"提示：当前默认钱包\u003Cbr/>不支持双击电源键打开\"]\n",[16,260,261],{},"小米做的另一件事，是在开机时检查这个值。如果它认为当前的值「不支持」，就会把它清掉：",[41,263,266],{"className":264,"code":265,"language":162},[160],"MiuiSingKeyShortcutObserver: set double_click_power_key to null, because function not support\n",[48,267,265],{"__ignoreMap":46},[82,269,270],{"id":270},"原项目做了什么",[16,272,273,274,276],{},"原项目当时并不知道 ",[48,275,139],{}," 的存在，所以绕了一个大圈：",[278,279,280,290,301],"ol",{},[89,281,282,283,285,286,289],{},"把 ",[48,284,155],{}," 改成一个系统不认识的值 ",[48,287,288],{},"google_pay","，让系统的双击动作失效；",[89,291,292,293,296,297,300],{},"通过 adb 用 ",[48,294,295],{},"app_process"," 启动一个以 shell 身份运行的常驻进程，用 ",[48,298,299],{},"getevent"," 监听电源键的按下与抬起，自己识别双击；",[89,302,303,304,307],{},"识别到双击后，用 ",[48,305,306],{},"am start"," 打开 Google 钱包的刷卡页，锁屏时再配合配套 App 处理解锁状态。",[16,309,310,311,313,314,317,318,120],{},"思路很巧妙，但有两个问题：这个常驻进程重启后就没了，每次重启都要连电脑重新激活；而在 HyperOS 4 上，",[48,312,288],{}," 这种不认识的值同样会在开机时被系统清掉。我一开始就是先把这套方案原样搬了过来，后来在排查一个「备份里的原值莫名变成 ",[48,315,316],{},"null","」的问题时，才顺藤摸瓜发现了开机清理和 ",[48,319,139],{},[82,321,323],{"id":322},"我的-fork-做了什么","我的 fork 做了什么",[16,325,326],{},"说穿了，核心就是开头那条命令。我的 fork 做的是在这条命令周围补齐三件事：",[328,329,331],"h3",{"id":330},"_1-改用原生的-launch_qaw_wallet","1. 改用原生的 launch_QAW_wallet",[16,333,334,335,120],{},"不再需要常驻进程，也不用自己处理锁屏，全部交给系统。小米钱包模式就是把值写回 ",[48,336,170],{},[328,338,340],{"id":339},"_2-切换模式时同步默认-nfc-付款应用","2. 切换模式时同步默认 NFC 付款应用",[16,342,343,344,347,348,351,352,355],{},"默认付款应用存在 ",[48,345,346],{},"settings secure nfc_payment_default_component"," 里。Google 一侧是 ",[48,349,350],{},"com.google.android.gms/.tapandpay.hce.service.TpHceService","，小米钱包则是 ",[48,353,354],{},"com.android.nfc/.cardemulation.ESEWalletDummyService","（走的是 eSE）。切换到 Google 钱包模式时把默认付款改成 Google Pay，切换到小米钱包模式时改成小米钱包；如果你选的是第三方付款应用，就不动它。",[16,357,358,359,120],{},"前面说过，QAW 打开的是默认付款应用的钱包，所以这一步不只是顺手：",[36,360,361],{},"两种模式各自对应一组设置，缺一不可",[363,364,365,382],"table",{},[366,367,368],"thead",{},[369,370,371,375,379],"tr",{},[372,373,374],"th",{},"模式",[372,376,377],{},[48,378,155],{},[372,380,381],{},"默认 NFC 付款应用",[383,384,385,398],"tbody",{},[369,386,387,391,395],{},[388,389,390],"td",{},"Google 钱包",[388,392,393],{},[48,394,139],{},[388,396,397],{},"Google Pay",[369,399,400,403,407],{},[388,401,402],{},"小米钱包",[388,404,405],{},[48,406,170],{},[388,408,402],{},[16,410,411,412,420],{},"尤其是切回小米钱包的时候，只改默认付款应用是不够的，双击会提示「当前默认钱包不支持双击电源键打开」，",[36,413,414,415,417,418],{},"必须把 ",[48,416,155],{}," 也改回 ",[48,419,170],{},"，而这一步同样需要 adb。",[16,422,423,424,426],{},"如果那时恰好不方便用 adb（比如已经把开发者选项关了），还有一条不需要 adb 的退路：在系统设置的「辅助功能 → 通用 → 快捷手势 → 双击电源键」里，把它改回「公交 / Mi Pay / 门卡」。不过插件并不知道你这么改过，如果它记录的仍是 Google 钱包模式，下次开机并具备 adb 条件时，它会把值改回 ",[48,425,139],{},"。所以想长期使用小米钱包，最好还是在方便的时候到插件里切换一次。",[328,428,430],{"id":429},"_3-让-app-自己执行这条命令","3. 让 App 自己执行这条命令",[16,432,433],{},"这条命令必须由 shell 来执行，普通 App 是写不了的：",[41,435,438],{"className":436,"code":437,"language":162},[160],"You cannot keep your settings in the secure settings.\n",[48,439,437],{"__ignoreMap":46},[16,441,442,444,445,120],{},[48,443,155],{}," 不是公开的设置项，SettingsProvider 只允许 system、shell、root 和预装的特权应用修改它，普通应用只要 targetSdk 高于 22 就会被拒绝，",[36,446,447,448,451,452,455],{},"即使已经通过 ",[48,449,450],{},"pm grant"," 拿到了 ",[48,453,454],{},"WRITE_SECURE_SETTINGS"," 也不行",[16,457,458],{},"所以我参考冰箱（Ice Box）、Shizuku 的做法，让插件自己扮演 adb 客户端，连接本机的无线调试来拿到 shell 权限：",[86,460,461,472,486],{},[89,462,463,466,467,469,470,120],{},[36,464,465],{},"首次设置","：在开发者选项的「无线调试」里点「使用配对码配对设备」，然后在插件的通知里输入 6 位配对码。配对完成后，插件通过 shell 给自己 ",[48,468,450],{}," 一个 ",[48,471,454],{},[89,473,474,477,478,481,482,485],{},[36,475,476],{},"切换模式","：插件用这个权限打开无线调试（",[48,479,480],{},"adb_wifi_enabled"," 位于 Global 表，这个是能写的），通过 mDNS 找到本机 adbd 的端口，连上自己，执行 ",[48,483,484],{},"settings put","，再把无线调试关掉，整个过程大约 5 秒。",[89,487,488,491,492,494,495,497,498,500,501,503,504,506,507,509],{},[36,489,490],{},"开机写回","：开机后调度一个要求连接 Wi-Fi 的 JobScheduler 任务。如果你选的是 Google 钱包模式，开机后的值是 ",[48,493,316],{}," 或 ",[48,496,170],{},"，就写回 ",[48,499,139],{},"；如果是其他功能（比如你在系统设置里改成了相机），就不动。开机时无法区分「系统填回的 ",[48,502,170],{},"」和「用户选的 ",[48,505,170],{},"」，所以想长期用小米钱包的话，请在插件里切换，",[48,508,170],{}," 本身就能扛过重启。",[16,511,512],{},"插件切换模式的过程大致如下：",[41,514,516],{"className":207,"code":515,"language":209,"meta":46,"style":46},"sequenceDiagram\n    participant App as 插件\n    participant Sys as 系统设置\n    participant Adbd as 本机 adbd\n    App->>Sys: 打开无线调试（adb_wifi_enabled=1）\n    App->>Adbd: mDNS 发现 _adb-tls-connect._tcp\n    App->>Adbd: 用配对过的密钥连接 127.0.0.1\n    App->>Adbd: shell: settings put（双击设置 + 默认付款）\n    Adbd->>Sys: 以 shell 身份写入\n    App->>Sys: 关闭无线调试（adb_wifi_enabled=0）\n",[48,517,518,523,528,533,538,543,548,553,558,564],{"__ignoreMap":46},[51,519,520],{"class":53,"line":54},[51,521,522],{},"sequenceDiagram\n",[51,524,525],{"class":53,"line":219},[51,526,527],{},"    participant App as 插件\n",[51,529,530],{"class":53,"line":225},[51,531,532],{},"    participant Sys as 系统设置\n",[51,534,535],{"class":53,"line":231},[51,536,537],{},"    participant Adbd as 本机 adbd\n",[51,539,540],{"class":53,"line":237},[51,541,542],{},"    App->>Sys: 打开无线调试（adb_wifi_enabled=1）\n",[51,544,545],{"class":53,"line":243},[51,546,547],{},"    App->>Adbd: mDNS 发现 _adb-tls-connect._tcp\n",[51,549,550],{"class":53,"line":249},[51,551,552],{},"    App->>Adbd: 用配对过的密钥连接 127.0.0.1\n",[51,554,555],{"class":53,"line":255},[51,556,557],{},"    App->>Adbd: shell: settings put（双击设置 + 默认付款）\n",[51,559,561],{"class":53,"line":560},9,[51,562,563],{},"    Adbd->>Sys: 以 shell 身份写入\n",[51,565,567],{"class":53,"line":566},10,[51,568,569],{},"    App->>Sys: 关闭无线调试（adb_wifi_enabled=0）\n",[16,571,572],{},"开机写回的判断逻辑则是这样的：",[41,574,576],{"className":207,"code":575,"language":209,"meta":46,"style":46},"flowchart TD\n    Boot([\"开机\"]) --> Check[\"HyperOS 检查 double_click_power_key\u003Cbr/>可能清空、填回 mi_pay 或保留\"]\n    Check --> Mode{\"插件记录的模式\"}\n    Mode -->|\"小米钱包\"| Skip[\"什么都不做\u003Cbr/>mi_pay 本身能扛过重启\"]\n    Mode -->|\"Google 钱包\"| Job[\"调度一个需要 Wi-Fi 的任务\"]\n    Job --> Wifi{\"连上 Wi-Fi 了吗\"}\n    Wifi -->|\"还没有\"| Wait[\"等待\"] --> Wifi\n    Wifi -->|\"连上了\"| Adb[\"打开无线调试并连接自己\u003Cbr/>（需要开发者选项）\"]\n    Adb --> Value{\"当前的值\"}\n    Value -->|\"null / mi_pay\"| Write[\"写回 \u003Cb style='color:#b45309'>launch_QAW_wallet\u003C/b>\"]\n    Value -->|\"launch_QAW_wallet\"| Ok[\"已经正确，不动\"]\n    Value -->|\"其他功能\"| Keep[\"尊重用户的选择，不动\"]\n",[48,577,578,582,587,592,597,602,607,612,617,622,627,633],{"__ignoreMap":46},[51,579,580],{"class":53,"line":54},[51,581,216],{},[51,583,584],{"class":53,"line":219},[51,585,586],{},"    Boot([\"开机\"]) --> Check[\"HyperOS 检查 double_click_power_key\u003Cbr/>可能清空、填回 mi_pay 或保留\"]\n",[51,588,589],{"class":53,"line":225},[51,590,591],{},"    Check --> Mode{\"插件记录的模式\"}\n",[51,593,594],{"class":53,"line":231},[51,595,596],{},"    Mode -->|\"小米钱包\"| Skip[\"什么都不做\u003Cbr/>mi_pay 本身能扛过重启\"]\n",[51,598,599],{"class":53,"line":237},[51,600,601],{},"    Mode -->|\"Google 钱包\"| Job[\"调度一个需要 Wi-Fi 的任务\"]\n",[51,603,604],{"class":53,"line":243},[51,605,606],{},"    Job --> Wifi{\"连上 Wi-Fi 了吗\"}\n",[51,608,609],{"class":53,"line":249},[51,610,611],{},"    Wifi -->|\"还没有\"| Wait[\"等待\"] --> Wifi\n",[51,613,614],{"class":53,"line":255},[51,615,616],{},"    Wifi -->|\"连上了\"| Adb[\"打开无线调试并连接自己\u003Cbr/>（需要开发者选项）\"]\n",[51,618,619],{"class":53,"line":560},[51,620,621],{},"    Adb --> Value{\"当前的值\"}\n",[51,623,624],{"class":53,"line":566},[51,625,626],{},"    Value -->|\"null / mi_pay\"| Write[\"写回 \u003Cb style='color:#b45309'>launch_QAW_wallet\u003C/b>\"]\n",[51,628,630],{"class":53,"line":629},11,[51,631,632],{},"    Value -->|\"launch_QAW_wallet\"| Ok[\"已经正确，不动\"]\n",[51,634,636],{"class":53,"line":635},12,[51,637,638],{},"    Value -->|\"其他功能\"| Keep[\"尊重用户的选择，不动\"]\n",[16,640,641,644],{},[36,642,643],{},"需要强调的是，这个方案并没有绕开 adb。"," 插件只是替你临时打开无线调试，不管是切换模式还是开机写回，那一刻都需要 adb shell 权限，也就是必须开着「开发者选项」和「USB 调试 / 无线调试」。这和原项目「每次重启都要 adb 激活一次」本质上是一样的，只是把电脑省掉了。",[82,646,648],{"id":647},"关于-adb-客户端的实现","关于 adb 客户端的实现",[16,650,651],{},"无线调试的配对和连接涉及 SPAKE2、TLS 之类的协议细节，说实话我自己也不是那么懂，这部分代码全部交给 AI 照着 AOSP 的 adb 源码写的，我只负责在真机上测试、看日志、反馈问题。感兴趣的朋友可以直接去仓库里看代码。",[16,653,654,655,658],{},"实际使用中值得一提的只有一点：HyperOS 会在 App 切到后台的瞬间把它冻结（日志里是 ",[48,656,657],{},"freezeUid SUCCESS ... reason=tobg","），我第一次测试时就卡在了切去设置页找配对码的那一步。所以一定要给插件允许「自启动」，并把省电策略设为「无限制」。",[82,660,661],{"id":661},"测试结果",[363,663,664,674],{},[366,665,666],{},[369,667,668,671],{},[372,669,670],{},"项目",[372,672,673],{},"结果",[383,675,676,686,696,708,716,724,744],{},[369,677,678,683],{},[388,679,680,682],{},[48,681,139],{}," 打开 Google 钱包",[388,684,685],{},"解锁、锁屏均通过",[369,687,688,693],{},[388,689,690,692],{},[48,691,170],{}," 打开小米钱包",[388,694,695],{},"通过",[369,697,698,701],{},[388,699,700],{},"默认 NFC 付款应用随模式切换",[388,702,703,704,707],{},"通过，",[48,705,706],{},"dumpsys nfc"," 中的首选付款服务立即变化",[369,709,710,713],{},[388,711,712],{},"插件内切换模式（自动开关无线调试）",[388,714,715],{},"通过，约 5 秒",[369,717,718,721],{},[388,719,720],{},"开机写回完整链路",[388,722,723],{},"通过：开机广播 → 等待网络 → 打开无线调试 → 连接 → 执行 → 关闭无线调试",[369,725,726,738],{},[388,727,728,729,731,732,731,734,737],{},"开机写回规则（",[48,730,170],{}," / ",[48,733,316],{},[48,735,736],{},"launch_camera","）",[388,739,740,741,743],{},"前两者写回 ",[48,742,139],{},"，后者保持不变",[369,745,746,751],{},[388,747,748,749],{},"默认付款为小米钱包时使用 ",[48,750,139],{},[388,752,753],{},"无法打开小米钱包，提示「当前默认钱包不支持双击电源键打开，请修改设置」",[16,755,756],{},"还没有测试的：",[86,758,759,762,765],{},[89,760,761],{},"开机时没有 Wi-Fi、过一会儿才连上的情况",[89,763,764],{},"全新安装后从配对开始的完整流程",[89,766,767],{},"真实读卡器付款",[82,769,770],{"id":770},"一些注意事项",[86,772,773,782,788,794,804],{},[89,774,775,778,779,781],{},[36,776,777],{},"全程依赖开发者选项","。很多人日常会关闭开发者选项，比如 HSBC HK 这类银行 App 就不允许在开启开发者选项的手机上使用。如果你也是这样：关闭期间无法通过插件切换模式，需要小米钱包时只能去「辅助功能 → 通用 → 快捷手势 → 双击电源键」手动改回「公交 / Mi Pay / 门卡」；小米钱包模式重启后不受影响；但 Google 钱包模式在重启后可能被系统清掉，在你重新打开开发者选项、连上 Wi-Fi 让插件写回之前，双击都不会打开 Google 钱包。另外，关闭开发者选项后，已授予的 ",[48,780,454],{}," 和无线调试配对会不会被收回，我还没有验证。",[89,783,784,787],{},[36,785,786],{},"需要 Wi-Fi","。无线调试只能在 Wi-Fi 下工作。",[89,789,790,793],{},[36,791,792],{},"配对可能过期","。Android 默认会撤销 7 天内没有连接过的无线调试密钥，好在每次切换和开机写回都会连一次。万一过期了，在通知栏重新输入一次配对码就行。",[89,795,796,799,800,803],{},[36,797,798],{},"插件有网络权限了","。它只连接 ",[48,801,802],{},"127.0.0.1"," 上的 adbd，但持有一把被 adbd 信任的密钥，无线调试开着的时候可以随时拿到 shell。介意的话，可以在开发者选项里「撤销 USB 调试授权」。",[89,805,806,809],{},[36,807,808],{},"不想装插件的话","，开头那条命令手动执行一次就行，只是重启后可能需要再执行一次。",[82,811,812],{"id":812},"结论",[16,814,815,816,818],{},"国行 HyperOS 4 自己就藏着「双击电源键打开 Google 钱包」的能力：它就是原生 Android 的 Quick Access Wallet，HyperOS 里叫 ",[48,817,139],{},"，只是没在设置界面里露出来，开机时还可能被系统自己清掉。",[16,820,821,822,828,829,831,832,834],{},"所以整件事说穿了，就是",[36,823,824,825,827],{},"用 adb 权限改一下 ",[48,826,155],{}," 这个设置","，再把默认付款应用对应好。反过来想用小米钱包时，也得把它改回 ",[48,830,170],{},"，因为 ",[48,833,139],{}," 打不开小米钱包。我的 fork 只是把「什么时候执行这条命令」自动化了：配对一次，以后切换模式和开机写回都不需要电脑，但前提是开发者选项一直开着，这对需要关闭开发者选项才能用银行 App 的朋友来说并不友好。",[16,836,837,838,841,842,120],{},"至于为什么 Quick Access Wallet 在国行被标记为 ",[48,839,840],{},"disabledByCustFeature","，却在运行时完全可用——",[51,843,846],{"className":844},[845],"heimu","大概是因为没人会在国行手机上用 Google 钱包吧",[82,848,849],{"id":849},"参见",[86,851,852,859,865,872],{},[89,853,854],{},[20,855,858],{"href":856,"rel":857},"https://github.com/zhullyb/PowerWallet",[32],"zhullyb/PowerWallet: 本文对应的 fork",[89,860,861],{},[20,862,864],{"href":30,"rel":863},[32],"DustinYe/PowerWallet: 双击小米手机电源键打开 Google 钱包",[89,866,867],{},[20,868,871],{"href":869,"rel":870},"https://developer.android.com/reference/android/service/quickaccesswallet/QuickAccessWalletService",[32],"Android Developers - QuickAccessWalletService",[89,873,874],{},[20,875,878],{"href":876,"rel":877},"https://icebox.catchingnow.com/zh-hans/guide/wireless-debugging/",[32],"冰箱 IceBox - 无线调试激活",[880,881,882],"style",{},"html pre.shiki code .sAdtL, html code.shiki .sAdtL{--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sDhpE, html code.shiki .sDhpE{--shiki-default:#50A14F;--shiki-dark:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":46,"searchDepth":219,"depth":219,"links":884},[885,886,887,888,889,894,895,896,897,898],{"id":84,"depth":219,"text":84},{"id":104,"depth":219,"text":105},{"id":149,"depth":219,"text":149},{"id":270,"depth":219,"text":270},{"id":322,"depth":219,"text":323,"children":890},[891,892,893],{"id":330,"depth":225,"text":331},{"id":339,"depth":225,"text":340},{"id":429,"depth":225,"text":430},{"id":647,"depth":219,"text":648},{"id":661,"depth":219,"text":661},{"id":770,"depth":219,"text":770},{"id":812,"depth":219,"text":812},{"id":849,"depth":219,"text":849},"在上一篇关于 FCM 的文章里我提到，我已经在为出国做准备了。现在人已经到了海外，日常坐车、买咖啡基本都是刷卡，Google 钱包就成了我手机上使用频率最高的 App 之一。但国行 HyperOS 的「双击电源键」只能打开小米钱包，每次掏出手机还得解锁、找图标、点开，节奏一下就被打乱了。",[901,902],null,{"title":903,"path":904,"stem":905,"date":906,"lang":907,"children":-1},"吃大鹅(dae)这件事，Cudy 小路由一个人干不动了","/2026/07/17/my-router-proxy-plan-with-cudy-tr3000-and-n100","posts/zh/my-router-proxy-plan-with-cudy-tr3000-and-n100","2026-07-17","zh-CN","/en/2026/11/10/xiaomi-double-click-power-google-wallet/",1794279576207]