当前位置: 首页 > news >正文

四川炜航建筑公司网站有口碑的南通网站建设

四川炜航建筑公司网站,有口碑的南通网站建设,哪里有做营销型网站的公司,网站加友情链接的好处文章目录 开发平台基本信息问题描述实现流程 其他问题 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 客户需要我们设备支持ESIM功能#xff0c;5月份的时候在高通6125上面预研过ESIM功能#xff0c;当时ESIM供应商是Links field#xff0c… 文章目录 开发平台基本信息问题描述实现流程 其他问题 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 客户需要我们设备支持ESIM功能5月份的时候在高通6125上面预研过ESIM功能当时ESIM供应商是Links field集成流程只是内置了ESIM厂商的apk并且开启了feature以及默认给了一些权限具体ESIM功能的实现都是在厂商的apk中所以就没去深入研究ESIM功能。但是由于Links field报价过高所以这次又找了两家ESIM厂商分别是鹏越与紫光鹏越只把他们的ESIM芯片寄给了我们然后让我们去找GMS实验室要LPA的相关资料按照谷歌的标准流程操作即可实现ESIM功能而紫光则提供了一个他们的apk并且要求给权限与feature与之前的Links field类似。GMS实验室提供了一份资料里面包含了3份文档以及一个apk。 三份文档的内容大致为 1、如何集成LPA2、如何实现overlay app3、如何在开机向导和系统设置增加ESIM选项 ESIM功能可以简单理解为ESIM厂家提供芯片芯片分为贴片式跟拔插式贴片式是贴到主板上类似于各种单片机而拔插式则是一张实体ESIM卡长得跟普通的SIM卡一样需要插入到卡槽中才能使用然后就到ESIM运营商购买ESIM卡号安卓系统就可以通过谷歌LPA服务将购买的ESIM卡号下载到ESIM芯片中下载完成启用ESIM卡就能正常使用了一张ESIM芯片可以下载多个ESIM卡但是设备最多只能启用一张ESIM。 实现流程 在验证ESIM功能之前可以先到设置-关于手机-sim卡详细信息中查看是否有EIDEID是ESIM芯片的唯一标识代表着ESIM的正常使用如果设备无法读取到EID得排查硬件通路以及modem。 ESIM功能都实现流程可以分为以下几个步骤 启用euicc的feature内置谷歌LPA服务到system/priv-app/给LPA服务增加priv-app权限或者关闭权限校验增加overlay app在系统设置中调起LPA服务下载ESIM卡号并启用ESIM framework中已经有euicc的feature只需要拷贝到设备即可 --- a/device/mediateksample/custom_go/full_custom_go.mkb/device/mediateksample/custom_go/full_custom_go.mk-7,3 7,11 MTK_TARGET_PROJECT_FOLDER : $(LOCAL_PATH)-include $(MTK_TARGET_PROJECT_FOLDER)/vnd_$(MTK_TARGET_PROJECT).mkPRODUCT_NAME : full_custom_goPRODUCT_COPY_FILES \frameworks/native/data/etc/android.hardware.telephony.euicc.xml:system/etc/permissions/android.hardware.telephony.euicc.xml \内置谷歌LPA服务到system/priv-app/ --- a/device/mediateksample/p8_go/full_custom_go.mkb/device/mediateksample/p8_go/full_custom_go.mk-7,3 7,11 MTK_TARGET_PROJECT_FOLDER : $(LOCAL_PATH)-include $(MTK_TARGET_PROJECT_FOLDER)/vnd_$(MTK_TARGET_PROJECT).mkPRODUCT_NAME : full_custom_goPRODUCT_PACKAGES \EuiccGoogle \ LOCAL_PATH : $(call my-dir)############################################################################### include $(CLEAR_VARS) LOCAL_MODULE : EuiccGoogle LOCAL_SRC_FILES : EuiccGoogle.apk LOCAL_MODULE_CLASS : APPS LOCAL_CERTIFICATE : PRESIGNED LOCAL_PRIVILEGED_MODULE : true LOCAL_MODULE_TAGS : optional include $(BUILD_PREBUILT) 给LPA服务增加priv-app权限或者关闭权限校验这里选择的是关闭权限校验 --- a/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.javab/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java-3469,6 3469,8 public class PermissionManagerService extends IPermissionManager.Stub {NonNull PackageSetting packageSetting, NonNull Permission permission) {if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_DISABLE) {return true;}else if (!RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_DISABLE) {return true;}final String packageName pkg.getPackageName();if (Objects.equals(packageName, PLATFORM_PACKAGE_NAME)) {增加overlay app这个app是自己写的需要实现几个功能 在AndroidManifest.xml中注册广播 receiverandroid:name.PartnerReceiverandroid:permissionandroid.permission.WRITE_EMBEDDED_SUBSCRIPTIONSandroid:directBootAwaretrueandroid:exportedtrueintent-filteraction android:namecom.google.android.euicc.action.PARTNER_CUSTOMIZATION //intent-filter/receiver在java文件中实现广播并且广播方法中必须为空 package com.tp.euicc.overlay;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;public class PartnerReceiver extends BroadcastReceiver {public PartnerReceiver() {}Overridepublic void onReceive(Context context, Intent intent) {} }在res/values/strings.xml中增加两个字段 string namesim_slot_mappings_json translatablefalse{sim-slot-mappings:[{devices:[custom_go],esim-slot-ids:[0],psim-slot-ids:[1]}]}/stringinteger namedownload_type3/integer谷歌LPA就是通过广播找到overlay app然后从app的资源文件中获取sim_slot_mappings_json的值拿到配置数据其中devices的值要修改为Build.DEVICE如果是其他项目移植要记得修改。后面的esim是虚拟sim卡psim是物理sim卡ids的值分别是对应的卡槽比如在SIM 1卡槽接了ESIM这里就配成0不过实际测试不过怎么配置ids都能使用ESIM。 在系统设置中调起LPA服务下载ESIM卡号并启用ESIM 按照上面的方式集成之后在系统设置-网络-移动网络选项如果没有下载过ESIM点击就会调起谷歌LPA服务或者可以通过adb广播调起LPA配置界面然后根据提示扫描二维码下载ESIM卡号即可。 adb shell am start -n com.google.android.euicc/com.android.euicc.ui.settings.CurrentProfileListActivity其他问题 之前在2290上面调试出现下载完ESIM卡号之后无法启用ESIM功能需要在ESIM界面开、关一次飞行模式ESIM启用按钮才可以点击。解决方案如下 --- a/QSSI.12/packages/apps/Settings/src/com/android/settings/network/telephony/MobileNetworkSettings.javab/QSSI.12/packages/apps/Settings/src/com/android/settings/network/telephony/MobileNetworkSettings.java-58,6 58,7 import com.android.settingslib.search.SearchIndexable;import com.android.settingslib.utils.ThreadUtils;import org.codeaurora.internal.IExtTelephony;import java.util.Arrays;import java.util.List;-106,7 107,8 public class MobileNetworkSettings extends AbstractMobileNetworkSettings {private void setScreenState() {int simState mTelephonyManager.getSimState(); - boolean screenState simState ! TelephonyManager.SIM_STATE_ABSENT;// boolean screenState simState ! TelephonyManager.SIM_STATE_ABSENT;boolean screenState true;if (screenState) { 在MTK8766中同样出现不可点击的问题而且还把白卡显示出来造成了混淆解决方案如下 --- a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/MobileNetworkListController.javab/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/MobileNetworkListController.java-26,7 26,9 import android.content.Intent;import android.provider.Settings;import android.telephony.SubscriptionInfo;import android.telephony.SubscriptionManager; import android.telephony.euicc.EuiccManager;import android.util.ArrayMap; import android.util.Log;import androidx.lifecycle.Lifecycle;import androidx.lifecycle.LifecycleObserver;-122,7 124,7 public class MobileNetworkListController extends AbstractPreferenceController im} else {pref.setSummary(R.string.mobile_network_inactive_esim);/// M: Add for updating enabled state. - pref.setEnabled(false);//pref.setEnabled(false);}} else {if (mSubscriptionManager.isActiveSubscriptionId(subId)) {-130,7 132,7 public class MobileNetworkListController extends AbstractPreferenceController im} else if (SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {pref.setSummary(mContext.getString(R.string.mobile_network_inactive_sim));/// M: Add for updating enabled state. - pref.setEnabled(false);//pref.setEnabled(false);} else {pref.setSummary(mContext.getString(R.string.mobile_network_tap_to_activate,displayName));-138,7 140,14 public class MobileNetworkListController extends AbstractPreferenceController im}pref.setOnPreferenceClickListener(clickedPref - { - if (!info.isEmbedded() !mSubscriptionManager.isActiveSubscriptionId(subId)Log.d(TAG, clickedPref isEmbedded: (info.isEmbedded()));Log.d(TAG, clickedPref isActiveSubscriptionId: (mSubscriptionManager.isActiveSubscriptionId(subId)));Log.d(TAG, clickedPref showToggleForPhysicalSim: (SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)));/// M: Add for updating enabled state.if(info.isEmbedded()){Intent intent new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);mContext.startActivity(intent);}else if (!info.isEmbedded() !mSubscriptionManager.isActiveSubscriptionId(subId) !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId, true);} else { --- a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/MobileNetworkSummaryController.javab/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/MobileNetworkSummaryController.java-258,8 258,17 public class MobileNetworkSummaryController extends AbstractPreferenceControllermPreference.setEnabled(false);}/// } - } else { - mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());} else { /// M: Add for updating enabled state.mPreference.setOnPreferenceClickListener((Preference pref) - {logPreferenceClick(pref);Intent intent new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);mContext.startActivity(intent);return true;});//mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());}} --- a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/telephony/MobileNetworkSettings.javab/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/network/telephony/MobileNetworkSettings.java-27,6 27,7 import android.provider.Settings;import android.provider.SearchIndexableResource;import android.telephony.SubscriptionManager;import android.telephony.TelephonyManager; import android.telephony.euicc.EuiccManager;import android.text.TextUtils;import android.util.Log;import android.view.Menu;-100,8 101,12 public class MobileNetworkSettings extends AbstractMobileNetworkSettings {return true;}final String key preference.getKey();Intent intent new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);startActivity(intent);return true;- if (TextUtils.equals(key, BUTTON_CDMA_SYSTEM_SELECT_KEY)/*if (TextUtils.equals(key, BUTTON_CDMA_SYSTEM_SELECT_KEY)|| TextUtils.equals(key, BUTTON_CDMA_SUBSCRIPTION_KEY)) {if (mTelephonyManager.getEmergencyCallbackMode()) {startActivityForResult(-112,7 117,7 public class MobileNetworkSettings extends AbstractMobileNetworkSettings {return true;}- return false;return false;*/}Override diff --git a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/security/SimLockPreferenceController.java b/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/security/SimLockPreferenceController.java index 3b85888..98cbc9b 100644 --- a/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/security/SimLockPreferenceController.javab/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/security/SimLockPreferenceController.java-94,10 94,10 public class SimLockPreferenceController extends BasePreferenceController {for (SubscriptionInfo subInfo : subInfoList) {final int simState mTelephonyManager.getSimState(subInfo.getSimSlotIndex()); - if ((simState ! TelephonyManager.SIM_STATE_ABSENT) - (simState ! TelephonyManager.SIM_STATE_UNKNOWN)) {// if ((simState ! TelephonyManager.SIM_STATE_ABSENT)// (simState ! TelephonyManager.SIM_STATE_UNKNOWN)) {return true; - }// }}return false;} MTK8766下载完ESIM卡号之后有信号能ping通百度但是浏览器无法上网最终定位是他们默认APN配置的问题 --- a/device/mediatek/config/apns-conf.xmlb/device/mediatek/config/apns-conf.xml-25782,12 25782,12 mcc454mnc00apnmobile - proxy192.168.59.51 - port8080 - mmschttp://192.168.58.171:8002 - mmsproxy192.168.59.51 - mmsport8080 - typedefault,supl,mmsproxyportmmscmmsproxymmsporttypedefault,ia,suplprotocolIPV4V6roaming_protocolIPV4V6/
http://www.tj-hxxt.cn/news/133695.html

相关文章:

  • 淄博做网站跟优化合肥网站建设公司哪家好
  • 杭州滨江的网站建设公司韩国比分预测
  • 教育行业建设网站找网站公司做网站用了织梦可以吗
  • 怎么给网站做php后台深圳最新动态实时更新
  • 做打鱼网站网站备案转移
  • 做网站文字怎么围绕图片大连专业模板网站制作公司
  • 如何构建一个成交型网站国内网站建设排名
  • 网站如何做百度百科蓝色大气企业网站模板
  • 网站流量好难做使用网站模板快速建站
  • 运维培训 网站建设东莞虚拟主机
  • 西安做网站企业如何申请网址域名
  • 网站长期建设运营计划书wordpress上传sh文件夹
  • 推广关键词优化有了网站怎么做优化
  • 长春火车站是哪个区seo怎么去优化网站
  • 网站怎么做png阴影企业网站源码哪个最好
  • 郑州企业自助建站nginx wordpress 404
  • 网站推广实践内容做视频的网站
  • 企业网站的建设目的wordpress 股票插件
  • 中山网站建设方案外包请人做网站收费
  • 企业网站建设课件学习怎么做网站
  • 重庆网站推广 软件oppo自带软件商店下载
  • 做餐饮在环保局网站备案综合网站建设
  • 免费在线观看韩国电视剧网站推荐北滘禅城网站建设
  • 校园网站建设教程视频怎么做一网站
  • 论述网站建设的主要步骤内容平台策划书
  • 西安优化网站公司做网站的中文名字
  • 地方门户网站制作维影企业网站管理系统
  • 免费信息推广网站一键生成ppt
  • 微网站建设价格对比营销网站建设制作设计
  • 怎么用ps做静态网站tag做的最好的网站