Alipay fingerprint pay (Touch ID) is not working
Expected Behavior
Both Alipay and WeChat Pay work with fingerprint authentication.
Current Behavior
Only WeChat Pay works with fingerprint authentication, while AliPay doesn't.
Possible Solution
Edit:
After setprop persist.vendor.sys.fp.vendor fpc
and restarting /vendor/bin/mlipayd@1.1 as root, Alipay fingerprint authentication turned out to be working!
I searched through (simg2img'ed & unpacked & mounted) super.img of stock MIUI firmware package and found ro.hardware.fp.vendor=fpc
appearing in /vendor/build.prop
. There are also bunch of binaries matching "fp.vendor" pattern.
Steps to Reproduce
(maybe it's not reproducible for non-China(PRC) SIM cards/Alipay accounts? I'm not sure)
- Download & install & login/register Alipay
- Click the gear button at the top-right corner to enter its Settings
- Click to enter its "Payment Settings"
- Maybe "Biological ID Pay" doesn't show up for the first time, go back & retry until it shows up
- Click to enter "Biological ID Pay"
- (The UI may lag/be stuck) click "Activate Now" button to activate Touch ID Pay.
- The password prompt will appear after a while (which is abnormal - it should appear instantly), then enter "payment password" to finish activation process
Part of ps -A
:
system 940 1 10932312 3736 binder_ioctl_write_read 0 S mlipayd@1.1
logcat --pid=940
:
10-22 01:55:11.319 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:11.319 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:11.319 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:11.354 940 940 D QSEECOMAPI: Loaded image: APP id = 120
10-22 01:55:11.357 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:12.357 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:13.357 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:14.357 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:15.357 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:16.358 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:17.358 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:17.359 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:17.359 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:17.364 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:17.364 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 120
10-22 01:55:17.366 940 11011 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:17.366 940 11011 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:17.367 940 11011 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:17.398 940 11011 D QSEECOMAPI: Loaded image: APP id = 121
10-22 01:55:17.400 940 11011 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:18.400 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:19.400 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:20.401 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:21.401 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:22.401 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:23.401 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:23.402 940 11011 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:23.402 940 11011 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:23.420 940 11011 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:23.420 940 11011 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 121
10-22 01:55:23.423 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:23.423 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:23.423 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:23.449 940 940 D QSEECOMAPI: Loaded image: APP id = 122
10-22 01:55:23.452 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:24.453 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:25.453 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:26.454 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:27.454 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:28.455 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:29.455 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:29.455 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:29.455 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:29.459 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:29.459 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 122
10-22 01:55:29.461 940 11011 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:29.462 940 11011 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:29.462 940 11011 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:29.488 940 11011 D QSEECOMAPI: Loaded image: APP id = 123
10-22 01:55:29.489 940 11011 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:30.489 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:31.489 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:32.490 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:33.490 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:34.490 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:35.491 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:35.491 940 11011 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:35.491 940 11011 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:35.508 940 11011 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:35.508 940 11011 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 123
10-22 01:55:35.510 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:35.510 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:35.510 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:35.540 940 940 D QSEECOMAPI: Loaded image: APP id = 124
10-22 01:55:35.541 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:36.541 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:37.541 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:38.541 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:39.542 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:40.542 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:41.542 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:41.543 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:41.543 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:41.547 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:41.547 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 124
10-22 01:55:41.550 940 11011 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:41.550 940 11011 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:41.551 940 11011 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:41.581 940 11011 D QSEECOMAPI: Loaded image: APP id = 125
10-22 01:55:41.583 940 11011 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:42.583 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:43.584 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:44.584 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:45.584 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:46.585 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:47.585 940 11011 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:47.585 940 11011 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:47.585 940 11011 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:47.602 940 11011 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:47.602 940 11011 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 125
10-22 01:55:47.604 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:47.605 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:47.605 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:47.631 940 940 D QSEECOMAPI: Loaded image: APP id = 126
10-22 01:55:47.632 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:48.632 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:49.633 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:50.633 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:51.633 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:52.634 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:53.634 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:53.634 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:53.634 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:53.638 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:53.638 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 126
10-22 01:55:53.643 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:55:53.644 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:55:53.644 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:55:53.668 940 940 D QSEECOMAPI: Loaded image: APP id = 127
10-22 01:55:53.668 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:55:54.669 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:55:55.670 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:55:56.670 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:55:57.671 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:55:58.671 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:55:59.672 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:55:59.672 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:55:59.672 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:55:59.810 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:55:59.810 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 127
10-22 01:58:16.474 940 940 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
10-22 01:58:16.475 940 940 D QSEECOMAPI: App is not loaded in QSEE
10-22 01:58:16.475 940 940 D QSEECOMAPI: app_arch = 1, total_files = 9
10-22 01:58:16.486 940 940 D QSEECOMAPI: Loaded image: APP id = 128
10-22 01:58:16.486 940 940 D MlipayService: Load app mlipay from /vendor/firmware_mnt/image OK
10-22 01:58:17.487 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 5
10-22 01:58:18.488 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 4
10-22 01:58:19.489 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 3
10-22 01:58:20.489 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 2
10-22 01:58:21.491 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 1
10-22 01:58:22.491 940 940 E MlipayService: get_fp_vendor: get fp_prop fail, retry remain: 0
10-22 01:58:22.491 940 940 D MlipayService: get_fp_vendor: 0x00000001
10-22 01:58:22.491 940 940 D MlipayService: run_cmd: cmd->cmd_id = 0x10001000
10-22 01:58:22.496 940 940 D QSEECOMAPI: QSEECom_dealloc_memory
10-22 01:58:22.496 940 940 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 128
- Choose "Touch ID Pay Preferred" in "Set Authentication Method Priority" to make reproducing the problem more easy (although the problem already shows up at last step)
- Try some payment with Alipay & it will fail unless switching to password authentication rather than fingerprint (Touch ID) authentication
/device alioth /version lineage-18.1 /date 2021-10-16 /kernel 4.19.113-lineageos-g19498f2605ae #1 Sat Oct 16 03:02:41 UTC 2021 /baseband MPSS.HI.2.0.c7-00222-0607_1546_adde12bf8e /mods Magisk, OpenGapps pico, LSPosed
I have read the directions.