1. 按照alps\vendor\mediatek\release_note\MT8321\ReleaseNote_for_MT8321_alps-mp-o1.mp2.xlsx文档要求修改
  2. 第一步完成之后。会出现com.andoid.phone报错,进行GMS测试的时候也会测试中断,修改方法如下:

frameworks/base/telephony/java/android/telephony/ServiceState.java

protected void setFromNotifierBundle(Bundle m) {         if(m == null) return; //add chenhao         mVoiceRegState = m.getInt("voiceRegState");         mDataRegState = m.getInt("dataRegState");         mVoiceRoamingType = m.getInt("voiceRoamingType");

frameworks/opt/telephony/src/java/com/android/internal/telephony/CarrierServiceBindHelper.java

void updateForPhoneId(int phoneId, String simState) {        log("update binding for phoneId: " + phoneId + " simState: " + simState);        if (!SubscriptionManager.isValidPhoneId(phoneId)) {            return;        }         //add chenhao        int numPhones = TelephonyManager.from(mContext).getPhoneCount();        if (numPhones == 0) return;        //end

vendor/mediatek/proprietary/packages/services/Telephony/src/com/android/phone/CarrierConfigLoader.java

public void handleMessage(Message msg) {            int phoneId = msg.arg1;            log("mHandler: " + msg.what + " phoneId: " + phoneId);            String iccid;            CarrierIdentifier carrierId;            String carrierPackageName;            CarrierServiceConnection conn;            PersistableBundle config;            int numPhones ;//add chenhao            switch (msg.what) {                case EVENT_CLEAR_CONFIG:                    /* Ignore clear configuration request if device is being shutdown. */                    Phone phone = PhoneFactory.getPhone(phoneId);                    if (phone != null) {                        if (phone.isShuttingDown()) {                            break;                        }                    }                    //add chenhao                    /*if (mConfigFromDefaultApp[phoneId] == null &&                        mConfigFromCarrierApp[phoneId] == null)                        break;*/                    ///M: No need clear config in wifi only project                    numPhones= TelephonyManager.from(mContext).getPhoneCount();                    if (numPhones ==0 || (mConfigFromDefaultApp[phoneId] == null                            && mConfigFromCarrierApp[phoneId] == null)) break;                    //end                    mConfigFromDefaultApp[phoneId] = null;                    mConfigFromCarrierApp[phoneId] = null;                    mServiceConnection[phoneId] = null;                    broadcastConfigChangedIntent(phoneId);                    break;
 case EVENT_PACKAGE_CHANGED:                    carrierPackageName = (String) msg.obj;                    // Only update if there are cached config removed to avoid updating config                    // for unrelated packages.                    if (clearCachedConfigForPackage(carrierPackageName)) {                    //chenhao add                     //int numPhones = TelephonyManager.from(mContext).getPhoneCount();                    numPhones = TelephonyManager.from(mContext).getPhoneCount();                    //chenhao end                        for (int i = 0; i < numPhones; ++i) {                            updateConfigForPhoneId(i);                        }                    }                    break;
 PersistableBundle getConfigForSubId(int subId) {        try {            mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE, null);            // SKIP checking run-time READ_PHONE_STATE since using PRIVILEGED        } catch (SecurityException e) {            mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, null);        }        int phoneId = SubscriptionManager.getPhoneId(subId);        PersistableBundle retConfig = CarrierConfigManager.getDefaultConfig();        // add chenhao        int numPhones = TelephonyManager.from(mContext).getPhoneCount();        //if (SubscriptionManager.isValidPhoneId(phoneId)) {        if (numPhones > 0 &&                SubscriptionManager.isValidPhoneId(phoneId)) {                //chenhao            PersistableBundle config = mConfigFromDefaultApp[phoneId];            if (config != null)                retConfig.putAll(config);            config = mConfigFromCarrierApp[phoneId];            if (config != null)                retConfig.putAll(config);        }        return retConfig;    }

vendor/mediatek/proprietary/frameworks/opt/telephony/src/java/com/mediatek/internal/telephony/MtkRIL.java

public IMtkRilOp getRilOp()直接return null即可。

3.注意不能删除联系人 会出现GMS ==FAIL项

更多相关文章

  1. Android(安卓)JUnit单元测试基础实例
  2. Android(安卓)获取通讯录联系人,打开通讯录获取联系人信息;整个流
  3. android 缓存Bitmap - 开发文档翻译
  4. 修改块 - 单元测试
  5. Android(安卓)Wifi AP软件对比
  6. 【Android】资料汇总
  7. android 管理Bitmap内存 - 开发文档翻译
  8. 操作Android中联系人,通话记录,短息,的URI
  9. 【Error】MPermissions引入错误 android-apt plugin is incompat

随机推荐

  1. Linux下mysql数据库root无法登录的情况
  2. CentOS 6.5下源码安装mysql 5.5
  3. 在MySQL中将数据从LATIN1转换为UTF8
  4. mysql升级的一些踩坑点
  5. JSON保存在数据库中并使用JQuery加载
  6. mysql忘记root密码做法
  7. Mongodb Mysql NoSQL的区别和联系
  8. 使用sharpdevelop连接MySQL
  9. 链接表和SQL SELECT查询
  10. 常见几种数据库中自增字段的设置方法(转)