[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

相关文章

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 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节