修改的一些基础bug

mac2026-05-02  5

基于39Go平台

修改紧急号码

alps/vendor/mediatek/proprietary/external/EccList/ecc_list.xml

Condition: there are following values: - 0: ecc only when no sim - 1: ecc always - 2: MMI will show ecc but send to nw as normal call

<EccEntry Ecc="112" Category="0" Condition="1" Plmn = "268 01" /> <EccEntry Ecc="112" Category="0" Condition="1" Plmn = "214 01" /> <EccEntry Ecc="119" Category="0" Condition="0" /> <EccEntry Ecc="999" Category="0" Condition="0" /> <EccEntry Ecc="999" Category="0" Condition="1" />

修改voicemail

alps/vendor/mediatek/proprietary/frameworks/base/telephony/etc/voicemail-conf.xml

xml中添加以下客制化

<voicemail numeric="21670" carrier="" vmnumber="170" vmtag="Hangposta" /> <voicemail numeric="26801" carrier="" vmnumber="123" vmtag="Correio de voz" /> <voicemail numeric="21401" carrier="" vmnumber="22177" vmtag="Correo de voz" />

修改时区(基于80Go)

sagereal/mk/VP516E_AH5161W_Walton/ProjectConfig.mk config_timezone = Asia/Dhaka 默认GMT+06:00 Bangladesh standard time,不是Dhaka Time,需要添加Dhaka地区

alps/external/icu/icu4c/source/data/zone/en.txt "meta:Bangladesh"{ - ld{"Bangladesh Summer Time"} - lg{"Bangladesh Time"} - ls{"Bangladesh Standard Time"} + ld{"Dhaka Summer Time"} + lg{"Dhaka Time"} + ls{"Dhaka Standard Time"} }

修改之后编译生成.dat M、N、O)无需建立临时目录

1.进入到$AOSP/external/icu/icu4c/source/目录下的

2.在该目录下执行 ./runConfigureICU Linux命令生成MAKE文件

3.执行make INCLUDE_UNI_CORE_DATA=1

alps/external/icu/icu4c/source/stubdata/icudt58l.dat alps/vendor/mediatek/proprietary/packages/apps/SettingsLib/res/xml/timezones.xml + <timezone id="Asia/Dhaka"></timezone>

灭屏下来蓝牙文件屏幕不会被点亮

alps/vendor/mediatek/proprietary/packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppNotification.java import android.os.PowerManager; ...... ....... private void updateIncomingFileConfirmNotification() { ............................. PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); boolean screenOn = pm.isScreenOn(); if (!screenOn) { PowerManager.WakeLock wl = pm.newWakeLock( PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright"); wl.acquire(1000); wl.release(); } }

开启网络通知,有可用的网络时,无提示通知音

alps/frameworks/opt/net/wifi/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java import android.net.wifi.ScanResult; //Redmine 3505 modify for set ringtone on wifi 20191104 begin import android.net.Uri; import android.provider.Settings; import android.app.NotificationManager; import android.app.NotificationChannel; //Redmine 3505 modify for set ringtone on wifi 20191104 end import com.android.internal.R; import com.android.internal.notification.SystemNotificationChannels; /** * Helper to create notifications for {@link OpenNetworkNotifier}. */ public class ConnectToNetworkNotificationBuilder { /** Intent when user dismissed the "Connect to Network" notification. */ public static final String ACTION_USER_DISMISSED_NOTIFICATION = "com.android.server.wifi.ConnectToNetworkNotification.USER_DISMISSED_NOTIFICATION"; /** Intent when user tapped action button to connect to recommended network. */ public static final String ACTION_CONNECT_TO_NETWORK = "com.android.server.wifi.ConnectToNetworkNotification.CONNECT_TO_NETWORK"; /** Intent when user tapped action button to open Wi-Fi Settings. */ public static final String ACTION_PICK_WIFI_NETWORK = "com.android.server.wifi.ConnectToNetworkNotification.PICK_WIFI_NETWORK"; /** Intent when user tapped "Failed to connect" notification to open Wi-Fi Settings. */ public static final String ACTION_PICK_WIFI_NETWORK_AFTER_CONNECT_FAILURE = "com.android.server.wifi.ConnectToNetworkNotification.PICK_NETWORK_AFTER_FAILURE"; private Context mContext; private Resources mResources; private FrameworkFacade mFrameworkFacade; //Redmine 3505 modify for set ringtone on wifi 20191104 begin private NotificationManager mNotiManager; private Uri mUri; //Redmine 3505 modify for set ringtone on wifi 20191104 end public ConnectToNetworkNotificationBuilder( Context context, FrameworkFacade framework) { mContext = context; mResources = context.getResources(); mFrameworkFacade = framework; //Redmine 3505 modify for set ringtone on wifi 20191104 begin mUri = Settings.System.DEFAULT_NOTIFICATION_URI; mNotiManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); //Redmine 3505 modify for set ringtone on wifi 20191104 end } //Redmine 3505 modify for set ringtone on wifi 20191104 begin private void createChannel() { NotificationChannel mChannel = new NotificationChannel("sagereal_channel_id", "sagereal_channel_name", NotificationManager.IMPORTANCE_DEFAULT); mChannel.setDescription("sagereal_channel_description"); mChannel.setSound(mUri, Notification.AUDIO_ATTRIBUTES_DEFAULT); mNotiManager.createNotificationChannel(mChannel); } //Redmine 3505 modify for set ringtone on wifi 20191104 end /** * Creates the connect to network notification that alerts users of a recommended connectable * network. * * There are two actions - "Options" link to the Wi-Fi picker activity, and "Connect" prompts * the connection to the recommended network. * * @param network The network to be recommended */ public Notification createConnectToNetworkNotification(ScanResult network) { Notification.Action connectAction = new Notification.Action.Builder( null /* icon */, mResources.getText(R.string.wifi_available_action_connect), getPrivateBroadcast(ACTION_CONNECT_TO_NETWORK)).build(); Notification.Action allNetworksAction = new Notification.Action.Builder( null /* icon */, mResources.getText(R.string.wifi_available_action_all_networks), getPrivateBroadcast(ACTION_PICK_WIFI_NETWORK)).build(); //Redmine 3505 modify for set ringtone on wifi 20191104 begin if (mNotiManager.getNotificationChannel("sagereal_channel_id") == null) { createChannel(); } return createNotificationBuilder( mContext.getText(R.string.wifi_available_title), network.SSID) .setContentIntent( getPrivateBroadcast(ACTION_PICK_WIFI_NETWORK))//配置点击要启动的intent .setAutoCancel(true)//设置为true,点击通知栏 ,移除通知 .addAction(connectAction) .addAction(allNetworksAction) .setChannelId("sagereal_channel_id") .build(); }

接收蓝牙没有提示音

alps/vendor/mediatek/proprietary/packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppIncomingFileConfirmActivity.java import android.media.AudioManager; import android.media.MediaPlayer; import android.media.RingtoneManager; import android.os.Vibrator; protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_Material_Settings_Floating); if (V) Log.d(TAG, "onCreate(): action = " + getIntent().getAction()); super.onCreate(savedInstanceState); //Redmine146041 modified for bt received files will ring default notification 2018-8-30 begin getRingerMode(this); //Redmine146041 modified for bt received files will ring default notification 2018-8-30 end ................. } private Vibrator mVibrator; private void getRingerMode(Context context) { AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); int ringerMode = audioManager.getRingerMode(); if (ringerMode == AudioManager.RINGER_MODE_NORMAL) { ringDefaultNotification(context); } else if (ringerMode == AudioManager.RINGER_MODE_SILENT) { //do nothing } else if (ringerMode == AudioManager.RINGER_MODE_VIBRATE) { startVibrate(context); } } private void ringDefaultNotification(Context context) { Uri defaultNotificationUri = getDefultNotificationUri(context); if (defaultNotificationUri != null) { MediaPlayer mMediaPlayer = MediaPlayer.create(context, defaultNotificationUri); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setLooping(false); mMediaPlayer.start(); } } private Uri getDefultNotificationUri(Context context) { return RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION); } private void startVibrate(Context context) { if (mVibrator == null) { mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); } long[] pattern = {1000, 1400}; mVibrator.vibrate(pattern, -1); } private void stopViberate() { if (mVibrator != null) { mVibrator.cancel(); } }

email未登录,label界面发送email异常

如图所示: 没有设定email账号时,ComposeActivityEmail这个activity是disable状态,所以PMS才会query不到 而当设定email账号后,ComposeActivityEmail这个activity是enable状态,所以PMS可以query到 此问题PMS的query是正常的flow,component的enable/disable也是Email那边现有的design。 源码:

/39O/alps/vendor/mediatek/proprietary/packages/apps/Email/provider_src/com/android/email/provider/AccountReconciler.java final String composeActivityName = context.getString(R.string.reconciliation_compose_activity_name); final String composeActivityNameExternal = context.getString(R.string.reconciliation_compose_activity_external_name); if (!TextUtils.isEmpty(composeActivityName)) { // If there are no accounts remaining after reconciliation, disable the compose activity final boolean enableCompose = emailProviderAccounts.size() - accountsDeleted > 0; final ComponentName componentName = new ComponentName(context, composeActivityName); final ComponentName componentExtName = new ComponentName(context, composeActivityNameExternal); if ((context.getPackageManager().getComponentEnabledSetting(componentName) == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) && enableCompose) { context.getPackageManager().setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); /// M: To Fix Composer crash } context.getPackageManager().setComponentEnabledSetting(componentExtName, enableCompose ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, enableCompose ? PackageManager.DONT_KILL_APP : 0); /// M: To Fix Composer crash LogUtils.d(LogUtils.TAG, "Setting compose activity to " + (enableCompose ? "enabled" : "disabled")); }

所以修改一下部分:

alps/vendor/mediatek/proprietary/packages/apps/Email/res/values/strings.xml <!-- Redmine3550 modified for email cant open 2019/11/5 begin --> <string name="reconciliation_compose_activity_name" translatable="false"></string> <!--<string name="reconciliation_compose_activity_name" translatable="false">com.android.email.activity.ComposeActivityEmail</string> <string name="reconciliation_compose_activity_external_name" translatable="false">com.android.email.activity.ComposeActivityEmailExternal</string>--> <string name="reconciliation_compose_activity_external_name" translatable="false"></string> <!-- Redmine3550 modified for email cant open 2019/11/5 end -->

[相机]前后摄取景模式为烟火时,不能拍摄视频

alps/vendor/mediatek/proprietary/custom/mt6739/hal/sendepfeature/gc030a_mipi_raw/config.ftbl.gc030a_mipi_raw.h MtkCameraParameters::SCENE_MODE_SNOW, MtkCameraParameters::SCENE_MODE_SUNSET, MtkCameraParameters::SCENE_MODE_STEADYPHOTO, - MtkCameraParameters::SCENE_MODE_FIREWORKS, + // MtkCameraParameters::SCENE_MODE_FIREWORKS, MtkCameraParameters::SCENE_MODE_SPORTS, MtkCameraParameters::SCENE_MODE_PARTY, MtkCameraParameters::SCENE_MODE_CANDLELIGHT, alps/vendor/mediatek/proprietary/custom/mt6739/hal/sendepfeature/gc2385_mipi_raw/config.ftbl.gc2385_mipi_raw.h MtkCameraParameters::SCENE_MODE_SNOW, MtkCameraParameters::SCENE_MODE_SUNSET, MtkCameraParameters::SCENE_MODE_STEADYPHOTO, - MtkCameraParameters::SCENE_MODE_FIREWORKS, + // MtkCameraParameters::SCENE_MODE_FIREWORKS, MtkCameraParameters::SCENE_MODE_SPORTS, MtkCameraParameters::SCENE_MODE_PARTY, MtkCameraParameters::SCENE_MODE_CANDLELIGHT,

分享视频至email失败

前提条件:手机登录Email账户 操作步骤:视频播放器–长按某一视频–分享 实际结果:视频不在邮件编辑界面

alps/vendor/mediatek/proprietary/packages/apps/Email/src/com/android/email/activity/ComposeActivityEmailExternal.java private void sanitizeIntent() { Intent sanitizedIntent = getIntent(); if (sanitizedIntent != null) { Bundle originalExtras = sanitizedIntent.getExtras(); if (originalExtras == null) { originalExtras = new Bundle(); } //sanitizedIntent.replaceExtras(new Bundle()); copyStringExtraIfExists(ComposeActivity.EXTRA_SUBJECT, originalExtras, sanitizedIntent); copyStringExtraIfExists(ComposeActivity.EXTRA_TO, originalExtras, sanitizedIntent); copyStringExtraIfExists(ComposeActivity.EXTRA_CC, originalExtras, sanitizedIntent); copyStringExtraIfExists(ComposeActivity.EXTRA_BCC, originalExtras, sanitizedIntent); copyStringExtraIfExists(ComposeActivity.EXTRA_BODY, originalExtras, sanitizedIntent); setIntent(sanitizedIntent); } }

持续更新中…

最新回复(0)