本文共 23331 字,大约阅读时间需要 77 分钟。
系统硬件平台是sdm450/msm8953
在主板原理图上可以找到指纹相关的原理图部分如下:
该IC使用两路电, LDO6 1.8v, LDO10 2.8v。
a)配置编译选项modified: msm-3.18/arch/arm64/configs/msmcortex-perf_defconfigmodified: msm-3.18/arch/arm64/configs/msmcortex_defconfigmodified: msm-3.18/drivers/input/Kconfigmodified: msm-3.18/drivers/input/Makefile--- a/kernel/msm-3.18/arch/arm64/configs/msmcortex_defconfig+++ b/kernel/msm-3.18/arch/arm64/configs/msmcortex_defconfig+CONFIG_MICROARRAY_FINGERPRINT=y--- a/kernel/msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig+++ b/kernel/msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig+CONFIG_MICROARRAY_FINGERPRINT=y--- a/kernel/msm-3.18/drivers/input/Kconfig+++ b/kernel/msm-3.18/drivers/input/Kconfig+config MICROARRAY_FINGERPRINT+ tristate "MICROARRAY fingerprint IC"+ depends on SPI_MASTER+ help+ MICROARRAY fingerprint ic+#yujixuan modify+source "drivers/input/fingerprint/Kconfig"--- a/kernel/msm-3.18/drivers/input/Makefile+++ b/kernel/msm-3.18/drivers/input/Makefile+obj-$(CONFIG_MICROARRAY_FINGERPRINT) += fingerprint/
b)添加驱动源码文件fingerprint├── Kconfig├── Makefile└── microarray ├── ioctl_cmd.h ├── Kconfig ├── madev.c├── madev.h├── Makefile ├── qualcomm-settings.c└── qualcomm-settings.h
在获取硬件的硬件信息中,可知该指纹使用的 spi是 spi7, msm8953平台默认情况下,spi7是被配置在TZ端安全环境中, 被限制不能在AP侧使用的,
如果我们在AP侧使用spi7,需要解除限制,并且修改设备树种的 spi7 相关配置。
a)添加spi7 的设备树配置--- a/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi+++ b/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi@@ -1543,6 +1543,67 @@+ /* start for fingerprint spi end */+ spi7 {+ spi7_default: spi7_default {+ /* active state */+ mux {+ /* MOSI, MISO, CLK */+ pins = "gpio137", "gpio138", "gpio135";+ function = "blsp_spi7";+ };+ config {+ pins = "gpio137", "gpio138", "gpio135";+ drive-strength = <12>; /* 12 MA */+ bias-disable = <0>; /* No PULL */+ };+ };+ spi7_sleep: spi7_sleep {+ /* suspended state */+ mux {+ /* MOSI, MISO, CLK */+ pins = "gpio137", "gpio138", "gpio135";+ function = "gpio";+ };+ config {+ pins = "gpio137", "gpio138", "gpio135";+ drive-strength = <2>; /* 2 MA */+ bias-pull-down; /* PULL Down */+ };+ };+ spi7_cs0_active: cs0_active {+ /* CS */+ mux {+ pins = "gpio136";+ function = "blsp_spi7";+ };+ config {+ pins = "gpio136";+ drive-strength = <2>;+ bias-disable = <0>;+ };+ };+ spi7_cs0_sleep: cs0_sleep {+ /* CS */+ mux {+ pins = "gpio136";+ function = "gpio";+ };+ config {+ pins = "gpio136";+ drive-strength = <2>;+ bias-disable = <0>;+ };+ };+ };--- a/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953.dtsi+++ b/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953.dtsi aliases { + spi7 = &spi_7; };+ spi_7: spi@7af7000 { /* BLSP1 QUP7 */+ compatible = "qcom,spi-qup-v2";+ #address-cells = <1>;+ #size-cells = <0>;+ reg-names = "spi_physical", "spi_bam_physical";+ reg = <0x7af7000 0x600>,+ <0x7AC4000 0x1f000>;+ interrupt-names = "spi_irq", "spi_bam_irq";+ interrupts = <0 301 0>, <0 239 0>;+ spi-max-frequency = <19200000>;+ pinctrl-names = "spi_default", "spi_sleep";+ pinctrl-0 = <&spi7_default &spi7_cs0_active>;+ pinctrl-1 = <&spi7_sleep &spi7_cs0_sleep>;+ clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,+ <&clock_gcc clk_gcc_blsp2_qup3_spi_apps_clk>;+ clock-names = "iface_clk", "core_clk";+ qcom,infinite-mode = <0>;+ qcom,use-bam;+ qcom,use-pinctrl;+ qcom,ver-reg-exists;+ qcom,bam-consumer-pipe-index = <8>;+ qcom,bam-producer-pipe-index = <9>;+ qcom,master-id = <84>;+ status = "disabled";+ };
b)添加改指纹驱动设备树节点 如果是REE环境 spi在AP端控制,配置如下:--- a/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953.dtsi+++ b/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953.dtsi+ +&spi_7 {+ status = "ok";+ microarray_fp@0 {+ status = "ok";+ compatible = "microarray,fingerprint";+ reg = <0x0>;+ spi-max-frequency = <4800000>;+ vcc_io = <&pm8953_l6>;+ microarray,gpio_reset = <&tlmm 20 0>;+ microarray,gpio_irq = <&tlmm 44 0>;+ microarray,gpio_pwr = <&tlmm 97 0>;+ };+};另外,需要在 TZ中解除对spi7的使用限制。--- a/TZ.BF.4.0.5/trustzone_images/core/buses/qup_accesscontrol/bear/config/QUPAC_8953_Access.xml+++ b/TZ.BF.4.0.5/trustzone_images/core/buses/qup_accesscontrol/bear/config/QUPAC_8953_Access.xml@@ -149,7 +149,7 @@1 135, 136, 137, 138, end 15, end -AC_TZ +AC_HLOS
如果是TEE环境 spi在TZ端控制,AP侧便可以不添加SPI7相关的配置,直接在soc下配置。+&soc {+ microarray_fp{+ status = "ok";+ compatible = "microarray,fingerprint";+ spi-max-frequency = <4800000>;+ //microarray,gpio_reset = <&tlmm 2 0>;+ microarray,gpio_irq = <&tlmm 44 0>;+ microarray,gpio_pwr = <&tlmm 97 0>;+ avdd-supply = <&pm8953_l10>;+ vdd-supply = <&pm8953_l6>;+ };+}
c)修改驱动,打开log开关,观察开机log,查找设备节点通过阅读供应商提供的驱动源码,该驱动的主要目的是配置gpio,创建设备,通过上层iotcl读写,检测中断,收发信息,详细内容这里不做讨论,主要关注的是发现无上电内容, 驱动直接在 init过程中加载,通过of_find_compatible_node接口直接 获取设备树的填充信息。所以需要我们 在设备树里添加 avdd-supply = <&pm8953_l10>; vdd-supply = <&pm8953_l6>;创建device结构体,将 device_node 传入device,然后使用regulator_get,regulator_enable来上电。成功加载后的log 如下::msm8953_64:/ # dmesg | grep MAFP[ 7.924438] MAFP_mas_init: debug log! start![ 8.063001] MAFP_mas_do_some_for_probe: Get the regulator for vdd_l6 sucessfully.[ 8.081571] MAFP_mas_do_some_for_probe: Get the regulator for avdd_l10 sucessfully.[ 8.100764] MAFP_mas_probe: debug log! end!msm8953_64:/dev # ls -l madev0crw-rw-rw- 1 system system 231, 0 1970-01-01 00:28 madev0指纹的初始化是在tz端spi通信,读取id。基本ok后 通过ioctl控制会在驱动中注册相关中断。如果驱动中已经成功注册了中断,指纹基本上是ok的,查询到的中断应如下。msm8953_64:/ # cat proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 51: 156 0 0 0 0 0 0 0 msmgpio 44 qcom,finger_print-eint在TEE环环境中的指纹,AP侧不做spi通信
这里直接将编译好的ta 固件放到源码下,将其编译到system.img中,具体的路径要根据上层服务调用的库中open调用的具体路径来决定。 具体ta库文件的编译,后面再介绍。
diff --git a/device/qcom/msm8953_64/msm8953_64.mk b/device/qcom/msm8953_64/msm8953_64.mkindex ae2d3bb..ee36498 100755--- a/device/qcom/msm8953_64/msm8953_64.mk+++ b/device/qcom/msm8953_64/msm8953_64.mk@@ -102,6 +102,28 @@ PRODUCT_PACKAGES += \ +#fingerprint+PRODUCT_PACKAGES += \+ fingerprintd \++PRODUCT_COPY_FILES += device/qcom/msm8953_64/mafp/fingerprint.default.so:/system/lib64/hw/fingerprint.default.so+PRODUCT_COPY_FILES += device/qcom/msm8953_64/mafp/libfprint-x64.so:/system/lib64/libfprint-x64.so+PRODUCT_COPY_FILES += \+ device/qcom/msm8953_64/mafp/firmware/mafp.b00:/system/etc/firmware/mafp.b00 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b01:/system/etc/firmware/mafp.b01 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b02:/system/etc/firmware/mafp.b02 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b03:/system/etc/firmware/mafp.b03 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b04:/system/etc/firmware/mafp.b04 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b05:/system/etc/firmware/mafp.b05 \+ device/qcom/msm8953_64/mafp/firmware/mafp.b06:/system/etc/firmware/mafp.b06 \+ device/qcom/msm8953_64/mafp/firmware/mafp.mbn:/system/etc/firmware/mafp.mbn \+ device/qcom/msm8953_64/mafp/firmware/mafp.mdt:/system/etc/firmware/mafp.mdt \ frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc/permissions/android.hardware.fingerprint.xml
在调试指纹的时候,会遇到很多的selinux报错,举一个例子如下:
01-01 22:47:08.185 697 697 E QSEECOMAPI: Error::Failed to open /dev/qseecom device01-01 22:47:08.185 697 697 D MICROARRAY: [qsc_start_app_V2:90] end. ret=-101-01 22:47:08.185 697 697 E MICROARRAY: [ma_tac_create:124] start app ret = -101-01 22:47:08.185 697 697 D MICROARRAY: [get_app_name:104] s_app_name = mafp01-01 22:47:08.185 697 697 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x5800001-01 22:47:08.179 697 697 W fingerprintd: type=1400 audit(0.0:14): avc: denied { read write } for name="qseecom" dev="tmpfs" info=5621 scontext=u:r:fingerprintd:s0 tcontext=u:object_r:tee_device:s0 tclass=chr_file permissive=0
本着缺什么补什么的原则,以及项目修改的经验,添加一个指纹需要修改的权限大致如下:
--- a/device/qcom/sepolicy/common/device.te+++ b/device/qcom/sepolicy/common/device.te++#add by microarray+type microarray_finger_device_type, dev_type;--- a/device/qcom/sepolicy/common/file.te+++ b/device/qcom/sepolicy/common/file.te+#add by microarray gur+type ma_data_file, file_type, data_file_type;--- a/device/qcom/sepolicy/common/file_contexts+++ b/device/qcom/sepolicy/common/file_contexts@@ -388,3 +388,24 @@+# Devices+/dev/madev0 u:object_r:microarray_finger_device_type:s0+/data/system/ma_fingerprint(/.*)? u:object_r:ma_data_file:s0--- a/device/qcom/sepolicy/common/fingerprintd.te+++ b/device/qcom/sepolicy/common/fingerprintd.te+allow fingerprintd microarray_finger_device_type:chr_file {create_file_perms};+allow fingerprintd ma_data_file:file create_file_perms;+allow fingerprintd ma_data_file:dir create_dir_perms;--- a/device/qcom/sepolicy/common/init.te+++ b/device/qcom/sepolicy/common/init.te+allow init ma_data_file:dir {create_file_perms};+allow init ma_data_file:file {create_file_perms};--- a/device/qcom/sepolicy/common/platform_app.te+++ b/device/qcom/sepolicy/common/platform_app.te+allow platform_app microarray_finger_device_type:chr_file {create_file_perms};--- a/device/qcom/sepolicy/common/system_app.te+++ b/device/qcom/sepolicy/common/system_app.te+allow system_app microarray_finger_device_type:chr_file {create_file_perms};
修改 开机启动相关服务
--- a/device/qcom/common/rootdir/etc/init.qcom.rc+++ b/device/qcom/common/rootdir/etc/init.qcom.rc+ #add by microarray gur+ mkdir /data/system/ma_fingerprint 0777 system system@@ -990,6 +993,14 @@ service usb_uicc_enable /system/bin/sh /system/etc/init.qcom.uicc.sh disabled oneshot+#fingerprint+service fingerprintd /system/bin/fingerprintd+ class late_start+ user system
修改设备节点文件权限
--- a/device/qcom/common/rootdir/etc/ueventd.qcom.rc+++ b/device/qcom/common/rootdir/etc/ueventd.qcom.rc@@ -125,6 +125,10 @@+/dev/madev0 0666 system system
PATH:\TZ.BF.4.0.5\trustzone_images\build\ manifest.xml
TZ.BF.4.0.5 TZ.BF.4.0.5-00065-M8937AAAAANAZT-1 00065 1 M8937AAAAANAZT
检查编译环境是否OK配置好编译环境后,可以先编译 sampleapp ta来测试编译环境是否ok。
else if /i "%1" == "tz" ( cd TZ.BF.4.0.5/trustzone_images/build/ms if /i "%2" == "" ( build.cmd CHIPSET=msm8953 devcfg sampleapp )
cd \smartmodule\code\TZ.BF.4.0.5\trustzone_images\build\ms
build.cmd CHIPSET=msm8953 devcfg sampleapp -c
build.cmd CHIPSET=msm8953 devcfg sampleapp
=== Generating sampleapp/A53_64/SANAANAA/smplap64.mdt...BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.mdtBIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b00BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b01BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b02BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b03BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b04BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b05BIN D:\SC60_BP\TZ.BF.4.0.5\trustzone_images\build\ms\bin\PIL_IMAGES\SPLITBINS_SANAANAA\unsigned\smplap64.b06
编译环境加载:
如果SDK编译无法通过,按照以下过程检查环境
解压并拷贝gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux到/opt/arm
解压并拷贝gcc-linaro-aarch64-none-elf-4.9-2014.07_linux到/opt/arm
解压并拷贝Snapdragon_LLVM到/opt
解压并拷贝gcc-arm-none-eabi-4_8-2014q3到/home/xxx/bin
解压并拷贝gcc-linaro-6.1.1-2016.08-i686_arm-linux-gnueabihf到/home/xxx/bin
解压并拷贝arm-eabi-4.8到/home/xxx/bin
解压并拷贝TZ.BF.4.0.5到/home/xxx/workspace
将python.exe 添加到 高级环境变量中。
添加ID:
--- a/apps/bsp/trustzone/qsapps/build/secimage.xml+++ b/apps/bsp/trustzone/qsapps/build/secimage.xml@@ -118,6 +118,12 @@++
+ + --- a/core/bsp/trustzone/qsapps/build/secimage.xml+++ b/core/bsp/trustzone/qsapps/build/secimage.xml+0x000000000000000C +0x0000000000008888 ++
+ +0x000000000000000C +0x0000000000008888 +
拷贝工程文件:
cd trustzone_images/core/bsp/trustzone/qsapps/sampleapp/build/mkdir mafpcp -r ./sampleapp/* mafp
修改 trustzone_images/core/bsp/trustzone/qsapps/myapp/mafp/SConscript
替换所有的sampleapp 和 SAMPLEAPP 为mafp MAFP. 掉 除了 'mafp','all' 所有的 aliasescd trustzone_images/core/kernel/libstd/buildmkdir mafpcp -r ./sampleapp/* mafp
拷贝secure libstd 工程文件cd trustzone_images/core/securemsm/trustzone/qsee/mink/libstd/buildmkdir mafp
cd trustzone_images/core/securemsm/trustzone/qsapps/libs/biometric/buildmkdir mafpcp -r ./sampleapp/* mafp
cd trustzone_images/core/securemsm/trustzone/qsapps/libs/applib/qsee/buildmkdir mafpcp -r ./sampleapp/* mafp
cd trustzone_images/core/securemsm/trustzone/qsapps/libs/applib/proxy/buildmkdir mafpcp -r ./sampleapp/* mafp
cd trustzone_images/core/securemsm/trustzone/qsapps/libs/applib/common_applib/buildmkdir mafpcp -r ./sampleapp/* mafp
加入工程文件到编译环境
--- a/core/kernel/libstd/build/SConscript+++ b/core/kernel/libstd/build/SConscript@@ -72,13 +72,13 @@ if 'LIBSTD_TEST' in env: env.AddBinaryLibrary(['TZOS_IMAGE','MONITOR_IMAGE','HYPERVISOR_IMAGE', 'CTZL_IMAGE', 'CTZL64_IMAGE', 'TZTESTEXEC_IMAGE', 'WIDEVINE_IMAGE', 'PLAYREADY_IMAGE', 'MACCHIATO_SAMPLE_IMAGE', 'FIDOSUI_IMAGE', 'GPSAMPLE', 'GPTEST_IMAGE', 'GPTEST2', 'TTAARI1', 'TTACAPI1', 'TTACAPI2', 'TTACAPI3', 'TTACAPI4', 'TTACAPI5', 'TTACRP1', 'TTADS1', 'TTATIME1', 'TTATCF1', 'TTATCF2', 'TTATCF3', 'TTATCF4', 'TTATCF5',- 'SAMPLEAPP_IMAGE', 'QMPSECAPP_IMAGE', 'SAMPLEAPP64_IMAGE', 'ISDBTMM_IMAGE', 'APTTESTAPP_IMAGE', 'APTCRYPTOTESTAPP_IMAGE', 'ASSURANCETEST_IMAGE', 'ASSURANCETEST64_IMAGE', 'SECURITYTEST_IMAGE','DXHDCP2_IMAGE', 'DXHDCP2DBG_IMAGE',+ 'SAMPLEAPP_IMAGE', 'MAFP_IMAGE', 'QMPSECAPP_IMAGE', 'SAMPLEAPP64_IMAGE', 'ISDBTMM_IMAGE', 'APTTESTAPP_IMAGE', 'APTCRYPTOTESTAPP_IMAGE', 'ASSURANCETEST_IMAGE', 'ASSURANCETEST64_IMAGE', 'SECURITYTEST_IMAGE','DXHDCP2_IMAGE', 'DXHDCP2DBG_IMAGE',if 'LIBSTD_TEST' in env:- env.AddBinaryLibrary(['TZOS_IMAGE', 'HYPERVISOR_IMAGE', 'CTZL_IMAGE', 'CTZL64_IMAGE', 'TZTESTEXEC_IMAGE', 'SAMPLEAPP_IMAGE', 'SAMPLEAPP64_IMAGE', 'FINGERPRINT_IMAGE', 'FINGERPRINT64_IMAGE', 'IRIS_IMAGE', 'RETSTAPP_IMAGE',+ env.AddBinaryLibrary(['TZOS_IMAGE', 'HYPERVISOR_IMAGE', 'CTZL_IMAGE', 'CTZL64_IMAGE', 'TZTESTEXEC_IMAGE', 'SAMPLEAPP_IMAGE', 'MAFP_IMAGE', 'SAMPLEAPP64_IMAGE', 'FINGERPRINT_IMAGE', 'FINGERPRINT64_IMAGE', 'IRIS_IMAGE', 'RETSTAPP_IMAGE',
--- a/core/securemsm/trustzone/qsee/mink/libstd/build/SConscript+++ b/core/securemsm/trustzone/qsee/mink/libstd/build/SConscript@@ -108,7 +108,7 @@ images = ['TZOS_IMAGE', 'MONITOR_IMAGE', 'HYPERVISOR_IMAGE', 'GPSAMPLE', 'GPTEST_IMAGE', 'TTAARI1', 'TTACAPI1', 'TTACAPI2', 'TTACAPI3', 'TTACAPI4', 'TTACAPI5', 'TTACRP1', 'TTADS1', 'TTATIME1', 'TTATCF1', 'TTATCF2', 'TTATCF3', 'TTATCF4', 'TTATCF5',- 'SAMPLEAPP_IMAGE', 'SMPLSERV_IMAGE', 'SMPLCERT_IMAGE',+ 'SAMPLEAPP_IMAGE', 'MAFP_IMAGE', 'SMPLSERV_IMAGE', 'SMPLCERT_IMAGE',
--- a/core/securemsm/trustzone/qsapps/libs/biometric/build/SConscript+++ b/core/securemsm/trustzone/qsapps/libs/biometric/build/SConscript@@ -80,6 +80,7 @@ biometric_lib = '${BUILDPATH}/biometric_lib' env.AddBinaryLibrary (['SAMPLEAPP_IMAGE'],biometric_lib, [BIOMETRIC_LIB_SOURCES])+env.AddBinaryLibrary (['MAFP_IMAGE'],biometric_lib, [BIOMETRIC_LIB_SOURCES])
--- a/core/securemsm/trustzone/qsapps/libs/applib/qsee/build/SConscript+++ b/core/securemsm/trustzone/qsapps/libs/applib/qsee/build/SConscript@@ -156,6 +156,8 @@ elif env.has_key('KEYMASTERLAT_IMAGE'): LIB_ENTRY_SOURCES += [ '${BUILDPATH}/src/tzapp_lib_main.c',] elif env.has_key('SAMPLEAPP_IMAGE'): LIB_ENTRY_SOURCES += [ '${BUILDPATH}/src/tzapp_lib_main.c',]+elif env.has_key('MAFP_IMAGE'):+ LIB_ENTRY_SOURCES += [ '${BUILDPATH}/src/tzapp_lib_main.c',]@@ -211,6 +213,9 @@ else: env.AddBinaryObject('SAMPLEAPP_IMAGE', IMG_ENTRY_SOURCES) env.AddBinaryLibrary('SAMPLEAPP_IMAGE', '${BUILDPATH}/tzapp_entrylib', LIB_ENTRY_SOURCES)+env.AddBinaryObject('MAFP_IMAGE', IMG_ENTRY_SOURCES)+env.AddBinaryLibrary('MAFP_IMAGE', '${BUILDPATH}/tzapp_entrylib', LIB_ENTRY_SOURCES)
--- a/core/securemsm/trustzone/qsapps/libs/applib/proxy/build/SConscript+++ b/core/securemsm/trustzone/qsapps/libs/applib/proxy/build/SConscript@@ -118,7 +118,7 @@ env.LoadSoftwareUnits() env.AddBinaryLibrary(['KEYMASTER_IMAGE', 'KEYMASTER64_IMAGE', 'KEYMASTERLAT_IMAGE', 'GPSAMPLE', 'GPTEST_IMAGE', 'GPTEST2', 'TTAARI1', 'TTACAPI1', 'TTACAPI2', 'TTACAPI3', 'TTACAPI4', 'TTACAPI5', 'TTACRP1', 'TTADS1', 'TTATIME1', 'TTATCF1', 'TTATCF2', 'TTATCF3',- 'TTATCF4', 'TTATCF5', 'SAMPLEAPP_IMAGE', 'SAMPLEAPP64_IMAGE', 'ASSURANCETEST_IMAGE', 'ASSURANCETEST64_IMAGE', 'SECUREUISAMPLE_IMAGE', 'SECUREUISAMPLE64_IMAGE', 'APTTESTAPP_IMAGE', 'APTCRYPTOTESTAPP_IMAGE', 'FIDOCONFIG_IMAGE',+ 'TTATCF4', 'TTATCF5', 'SAMPLEAPP_IMAGE', 'MAFP_IMAGE', 'SAMPLEAPP64_IMAGE', 'ASSURANCETEST_IMAGE', 'ASSURANCETEST64_IMAGE', 'SECUREUISAMPLE_IMAGE', 'SECUREUISAMPLE64_IMAGE', 'APTTESTAPP_IMAGE', 'APTCRYPTOTESTAPP_IMAGE', 'FIDOCONFIG_IMAGE',
--- a/core/securemsm/secrsa/build/SConscript +++ b/core/securemsm/secrsa/build/SConscript @@ -70,6 +70,11 @@ if env.has_key('WINSECAPP_IMAGE'): +if env.has_key('MAFP_IMAGE'): + env.Append(CPPPATH = "${COREBSP_ROOT}/securemsm/secrsa/env/sampleapp/inc") + env.Append(CPPPATH = "${COREBSP_ROOT}/securemsm/secmath/env/sampleapp/inc") + env.Append(CPPPATH = "${COREBSP_ROOT}/api/securemsm/trustzone/qsee") + env.Append(CPPPATH = "${COREBSP_ROOT}/api/securemsm/crypto") @@ -84,6 +89,8 @@ elif env.has_key('GPTEST_IMAGE'): env.Append(CCFLAGS = " -O3 ") elif env.has_key('SAMPLEAPP_IMAGE'): env.Append(CCFLAGS = " -O3 ") +elif env.has_key('MAFP_IMAGE'): + env.Append(CCFLAGS = " -O3 ")
QSEE中的修改:
--- a/core/securemsm/trustzone/qsee/mink/oem/config/msm8953/oem_config.xml+++ b/core/securemsm/trustzone/qsee/mink/oem/config/msm8953/oem_config.xml@@ -40,10 +40,10 @@- 0x85B00000+ 0x84a00000 - 0x800000+ 0x1900000
LK中的修改:
--- a/bootable/bootloader/lk/platform/msm8953/include/platform/iomap.h+++ b/bootable/bootloader/lk/platform/msm8953/include/platform/iomap.h@@ -221,8 +221,12 @@ #define RPMB_SND_RCV_BUF_SZ 0x1 /* QSEECOM: Secure app region notification */-#define APP_REGION_ADDR 0x85B00000-#define APP_REGION_SIZE 0x800000+#define APP_REGION_ADDR 0x84a00000+#define APP_REGION_SIZE 0x1900000
Kernel中的修改:
--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953.dtsi+++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953.dtsi@@ -34,7 +34,8 @@ other_ext_mem: other_ext_region@0 { compatible = "removed-dma-pool"; no-map;- reg = <0x0 0x85b00000 0x0 0xd00000>;+ // reg = <0x0 0x85b00000 0x0 0xd00000>;+ reg = <0x0 0x84a00000 0x0 0x1E00000>; }; modem_mem: modem_region@0 {@@ -2084,9 +2085,10 @@ qcom,ce-opp-freq = <100000000>; };- qcom_seecom: qseecom@85b00000 {+ qcom_seecom: qseecom@84a00000 { compatible = "qcom,qseecom";- reg = <0x85b00000 0x800000>;+ // reg = <0x85b00000 0x800000>;+ reg = <0x84a00000 0x1900000>;
adb logcat -v time -s MICROARRAY
在log中观察是否存在 .so无法使用,固件库加载不到,selinux权限问题等。
服务加载上通讯不ok,指纹界面应该有了但是无法录入如下图,需要和FAE沟通是否是 库文件的问题。
成功添加指纹的状态是如下状态:
转载地址:http://rcjnz.baihongyu.com/