[MTK6771] android13系统启用OMAPI 支持esim.me

2024-03-16 11:36

本文主要是介绍[MTK6771] android13系统启用OMAPI 支持esim.me,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OMAPI是啥?看看谷歌的解释:
在这里插入图片描述
说了一大堆懂的人不需要看,不懂的还是看不懂,我就是后者
总之说人话就是,像SIM卡,NFC这类模块需要用到这个东西,那么接着往下看
在这里插入图片描述
上层APP想要使用这个OMAPI供应商稳定版服务功能,会调用到SecureElement这个APP的接口
以下为SecureElement的代码路径:
在这里插入图片描述
但是安卓13版本上SecureElement默认是不开启OMAPI供应商稳定版服务功能,需要在packages/apps/SecureElement/res/values/config.xml这个路径下将“secure_element_vintf_enabled” 这个属性修改为"true"。咋们看看secure_element_vintf_enabled 是哪段代码中被加载
在这里插入图片描述
看看VSTABLE_SECURE_ELEMENT_SERVICE 这个变量的值是android.se.omapi.ISecureElementService/default
可以看到当secure_element_vintf_enabled为true的时候,android.se.omapi.ISecureElementService/default 这个hal层服务才被加载。

那么将secure_element_vintf_enabled 属性修改为true后,编译刷机。
开机完成后进入Launcher,弹出SecureElement的报错框,随后系统进入recovery模式,使用adb logcat > F:/log/1111.log抓取日志,看看为什么报错,报错日志如下:

03-14 10:27:19.273  2799  2799 I SecureElementService: Check if terminal eSE1 is available.        // 检查eSE1 是否可用
03-14 10:27:19.274   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.2::ISecureElement/eSE1 in either framework or device VINTF manifest.    // 在资源文件中找不到android.hardware.secure_element@1.2::ISecureElement/eSE1这个服务
03-14 10:27:19.274  2799  2799 D SecureElement-Terminal-eSE1: SE Hal V1.2 is not supported        // SE Hal V1.2 不被支持
03-14 10:27:19.275   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.1::ISecureElement/eSE1 in either framework or device VINTF manifest.
03-14 10:27:19.276  2799  2799 D SecureElement-Terminal-eSE1: SE Hal V1.1 is not supported
03-14 10:27:19.276   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.0::ISecureElement/eSE1 in either framework or device VINTF manifest.
03-14 10:27:19.277  1976  2602 I NearbyDiscovery: Show notifications: 0 total, no changes since last shown, no-op. [CONTEXT service_id=265 ]
03-14 10:27:19.277  2799  2799 I SecureElementService: No HAL implementation for eSE1
03-14 10:27:19.277  2799  2799 I SecureElementService: Check if terminal SIM1 is available.
03-14 10:27:19.277   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.2::ISecureElement/SIM1 in either framework or device VINTF manifest.
03-14 10:27:19.278  2799  2799 D SecureElement-Terminal-SIM1: SE Hal V1.2 is not supported
03-14 10:27:19.278   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.1::ISecureElement/SIM1 in either framework or device VINTF manifest.
03-14 10:27:19.278  2799  2799 D SecureElement-Terminal-SIM1: SE Hal V1.1 is not supported
03-14 10:27:19.279   409   409 I hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.0::ISecureElement/SIM1 in either framework or device VINTF manifest.
03-14 10:27:19.279  2743  2743 D WindowTokenClient: Only apply configuration update to Resources because shouldReportConfigChange is false.
03-14 10:27:19.279  2743  2743 D WindowTokenClient: android.window.WindowTokenClient.attachToDisplayArea:118 android.window.WindowContextController.attachToDisplayArea:107 android.window.WindowProviderService.attachBaseContext:161 android.app.Service.attach:915 android.app.ActivityThread.handleCreateService:4553 
03-14 10:27:19.279  2799  2799 I SecureElementService: No HAL implementation for SIM1
03-14 10:27:19.279  1976  2602 I NearbyDiscovery: DiscoveryModule: EventLoop destroyed [CONTEXT service_id=265 ]
03-14 10:27:19.280   408   408 I servicemanager: Could not find android.se.omapi.ISecureElementService/default in the VINTF manifest.
03-14 10:27:19.281  2799  2799 D AndroidRuntime: Shutting down VM                              // 虚拟机被关闭
03-14 10:27:19.282  2799  2799 E AndroidRuntime: FATAL EXCEPTION: main
03-14 10:27:19.282  2799  2799 E AndroidRuntime: Process: com.android.se, PID: 2799
03-14 10:27:19.282  2799  2799 E AndroidRuntime: java.lang.RuntimeException: Unable to create service com.android.se.SecureElementService: java.lang.IllegalArgumentException: VINTF declaration error
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4568)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7941)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: VINTF declaration error
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3015)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Parcel.createException(Parcel.java:2995)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2978)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2920)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.IServiceManager$Stub$Proxy.addService(IServiceManager.java:446)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:72)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.ServiceManager.addService(ServiceManager.java:213)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.os.ServiceManager.addService(ServiceManager.java:180)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at com.android.se.SecureElementService.onCreate(SecureElementService.java:216)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4555)
03-14 10:27:19.282  2799  2799 E AndroidRuntime: 	... 9 more
03-14 10:27:19.282  2056  2247 W MediaProvider: getVolumePath for unknown volume: internal
03-14 10:27:19.285  1215  2001 I mtkpower_client: [Legacy][PowerHal_Wrap_notifyAppState] com.android.se/com.android.se pid=2799 state:3
03-14 10:27:19.285  1215  2001 I game_scn: collectForegroundAppList packName=com.android.se, actName=com.android.se, pid=2799, uid=1068, state:DEAD
03-14 10:27:19.285   558   675 I libPowerHal: [perfNotifyAppState] pack:com.android.se, act:com.android.se, state:3, pid:2799, uid:1068, fps:-1
03-14 10:27:19.285   558   675 I libPowerHal: [perfNotifyAppState] pack:com.android.se, pid:2799, STATE_DEAD
03-14 10:27:19.285   558   675 D RilUtility: notify_rild_crash_pid_set certPid:-1, crash:2799, scn:0x0
03-14 10:27:19.286  2771  2771 I DebugLoggerUI/MyApplication: -->onCreate()
03-14 10:27:19.287  1215  2001 W ActivityManager: Process com.android.se has crashed too many times, killing! Reason: crashed quickly
03-14 10:27:19.291  2799  2799 I Process : Sending signal. PID: 2799 SIG: 9
03-14 10:27:19.292  2771  2771 I DebugLoggerUI/LogReceiver:  -->onReceive(), action=android.intent.action.BOOT_COMPLETED
03-14 10:27:19.294  2771  2832 I DebugLoggerUI/LogConfig: -->checkConfig()
03-14 10:27:19.295  2771  2832 I DebugLoggerUI: isTaglogEnable ? false
03-14 10:27:19.298  1215  2829 I DropBoxManagerService: add tag=system_app_crash isTagEnabled=true flags=0x2

根据日志可以看到导致SecureElement报错,系统也进入recovery模式的罪魁祸首就是hal层中OMAPI相关的服务并没有被加载

hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.0::ISecureElement/eSE1 in either framework or device VINTF manifest..    // eSE1相关hal层服务未被加载 
hwservicemanager: getTransport: Cannot find entry android.hardware.secure_element@1.2::ISecureElement/SIM1 in either framework or device VINTF manifest.     // SIM1相关hal层服务未被加载

像这类问题,一般是在device.mk文件中配置编译规则,编译规则一般是判断宏定义的值来决定hal层的服务是否被编译

先记录到这,后续更新

这篇关于[MTK6771] android13系统启用OMAPI 支持esim.me的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815365

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用