展讯Android11 需求bug修改记录

**

需求修改记录

**
1.WLAN偏好设置高级中添加ip和mac地址菜单
packages/apps/Settings/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -35,6 +35,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

+import com.android.settings.deviceinfo.IpAddressPreferenceController;
+import com.android.settings.deviceinfo.WifiMacAddressPreferenceController;
@SearchIndexable
public class ConfigureWifiSettings extends DashboardFragment {

@@ -75,6 +77,8 @@ public class ConfigureWifiSettings extends DashboardFragment {
final List controllers = new ArrayList<>();
controllers.add(new WifiP2pPreferenceController(context, getSettingsLifecycle(),
wifiManager));

  • controllers.add(new IpAddressPreferenceController(context, getSettingsLifecycle()));

  • controllers.add(new WifiMacAddressPreferenceController(context, getSettingsLifecycle()));
    return controllers;
    }
    packages/apps/Settings/res/xml/wifi_configure_settings.xml
    @@ -88,4 +88,16 @@
    android:title=“@string/wifi_menu_p2p”
    android:fragment=“com.android.settings.wifi.p2p.WifiP2pSettings” />

  • <Preference

  •    android:key="wifi_ip_address"
    
  •    android:title="@string/wifi_ip_address"
    
  •    android:summary="@string/summary_placeholder"
    
  •           settings:controller="com.android.settings.deviceinfo.IpAddressPreferenceController"/>
    
  • <Preference

  •    android:key="wifi_mac_address"
    
  •    android:title="@string/status_device_wifi_mac_address"
    
  •    android:summary="@string/summary_placeholder"
    
  •           settings:controller="com.android.settings.deviceinfo.WifiMacAddressPreferenceController"/>
    

2.默认亮度改为60%,删除长按电源键中的紧急拨号
frameworks/base/core/res/res/values/config.xml
153
删除config_globalActionsList中的emergency

3.将已连接wifi详情中的隐私改为使用设备MAC
packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController2.java
@@ -299,7 +299,9 @@ public class WifiConfigController2 implements TextWatcher,
mConfigUi.setTitle(mWifiEntry.getTitle());
ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);

  •                   mPrivacySettingsSpinner.setSelection(2);//add by zengqb for use device mac       
    

4.打开wlan热点,默认显示共享二维码
packages/apps/Settings/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -485,11 +485,14 @@ public class WifiDppUtils {
// QR code generator produces QR code with ZXing’s Wi-Fi network config format,
// it supports PSK and WEP and non security
// KeyMgmt.NONE is for WEP or non security

  •           //change by zengqb for display QR in wlan hotspot
    
  •    /*return softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
    
  •           /*
    
  •    return softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
               || softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE
    
  •            || softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_OPEN;*/
    
  •           return true;            
    
  •            || softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_OPEN;
    
  •                           */
    
  •           return true;//change by zengqb for wlan hotspot display QR
    
  • }
    5.删除设置中的振动菜单和显示
    frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    2默认静音
    packages/apps/Settings/src/com/android/settings/Utils.java
    import android.os.Vibrator;
    /**
    • Returns whether the device is voice-capable (meaning, it is also a phone).
      */
      //add by zengqb for Vibrator
      public static boolean hasVibrator(Context context) {
      final Vibrator mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
      return mVibrator != null
      && mVibrator.hasVibrator();
      }
      packages/apps/Settings/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
      mVideoPreference = screen.findPreference(getVideoPrefKey());
      +mPreferenceCategory.removePreference(mVibratePref);//add by zengqb for
      packages/apps/Settings/src/com/android/settings/gestures/PreventRingingSwitchPreferenceController.java
      Settings.Secure.putInt(mContext.getContentResolver(),
      Settings.Secure.VOLUME_HUSH_GESTURE, isChecked
      ? Settings.Secure.VOLUME_HUSH_OFF
  •                                : Settings.Secure.VOLUME_HUSH_VIBRATE);
    
  •                                : Settings.Secure.VOLUME_HUSH_MUTE);//zengqb VOLUME_HUSH_VIBRATE
                  return true;
              });
              mSwitch = pref.findViewById(R.id.switch_bar);
      final int preventRingingSetting = Settings.Secure.getInt(mContext.getContentResolver(),
              Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE);
      final int newRingingSetting = preventRingingSetting == Settings.Secure.VOLUME_HUSH_OFF
    
  •            ? Settings.Secure.VOLUME_HUSH_VIBRATE
    
  •            ? Settings.Secure.VOLUME_HUSH_MUTE//zengqb 
              : preventRingingSetting;
    

packages/apps/Settings/src/com/android/settings/sound/VibrateForCallsPreferenceController.java
public int getAvailabilityStatus() {
return Utils.isVoiceCapable(mContext) && !DeviceConfig.getBoolean(

  •            DeviceConfig.NAMESPACE_TELEPHONY, RAMPING_RINGER_ENABLED, false)
    
  •           DeviceConfig.NAMESPACE_TELEPHONY, RAMPING_RINGER_ENABLED, false) && Utils.hasVibrator(mContext)//add by zengqb to dele Vibrate for calls
    

packages/apps/Settings/res/values/config.xml
false
6.删除连接电脑的cdrom和midi
packages/apps/Settings/src/com/sprd/settings/SprdUsbSettingsFragment.java
//add by zengqb for remove cdrom and midi
getPreferenceScreen().removePreference(mCdrom);
getPreferenceScreen().removePreference(mMidi);
7.删除设置-显示中的自动亮度菜单
frameworks/base/core/res/res/values/config.xml
false
8.修改电池容量
frameworks/base/core/res/res/xml/power_profile.xml
7000
9.默认语言添加与修改
vendor/sprd/feature_configs/multi-lang/config.mk
vendor/sprd/feature_configs/multi-lang/overlay/frameworks/base/core/res/res/values/locale_config.xml
10.关机和重启添加确认窗口
frameworks/base/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
// ShutdownThread displays UI, so give it a UI context.
mHandler.post(() ->
ShutdownThread.shutdown(getUiContext(),

  •                    PowerManager.SHUTDOWN_USER_REQUESTED, false));
    
  •                    PowerManager.SHUTDOWN_USER_REQUESTED, true));//change by zengqb
      } finally {
          Binder.restoreCallingIdentity(identity);
      }
                  ShutdownThread.rebootSafeMode(getUiContext(), true);
              } else {
                  ShutdownThread.reboot(getUiContext(),
    
  •                        PowerManager.SHUTDOWN_USER_REQUESTED, false);
    
  •                        PowerManager.SHUTDOWN_USER_REQUESTED, true);//change by zengqb
              }
          });
      } finally {
    

11.wifi热点名称同步设备名称
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
import java.util.Random;

import javax.annotation.Nullable;
//add by zengqb for wifi hotspot use devicename
import android.provider.Settings;
import android.os.Build;

/**

  • Provides API for reading/writing soft access point configuration.
    mWifiConfigManager.saveToStore(true);
    mBackupManagerProxy.notifyDataChanged();
    }

    private String getDeviceName() {
    // Keep device name in sync with Settings > About phone > Device name
    String deviceName = Settings.Global.getString(mContext.getContentResolver(),
    Settings.Global.DEVICE_NAME);
    if (deviceName == null) {
    deviceName = Build.MODEL;
    }
    return deviceName;
    }
    /**

    • Generate a default WPA3 SAE transition (if supported) or WPA2 based
    • configuration with a random password.
      configBuilder.setPassphrase(generatePassword(),
      SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
      }
      //add by zengqb for wifi hotspot use devicename
      String name = getDeviceName();
      if(!name.isEmpty())
      configBuilder.setSsid(name);
      //add by zengqb for wifi hotspot use devicename
      return configBuilder.build();
      }
      frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
      import java.util.HashMap;
      import java.util.List;
      import java.util.Map;

//add by zengqb for wifi hotspot use devicename
import android.provider.Settings;
import android.os.Build;
/**

  • WifiP2pService includes a state machine to perform Wi-Fi p2p operations. Applications

  • communicate with this service to issue device discovery and connectivity requests
    //Treat the address as name if there is no match
    return deviceAddress;
    }

    private String getDeviceName() {
    // Keep device name in sync with Settings > About phone > Device name
    String deviceName = Settings.Global.getString(mContext.getContentResolver(),
    Settings.Global.DEVICE_NAME);
    if (deviceName == null) {
    deviceName = Build.MODEL;
    }
    return deviceName;
    }
    private String getPersistedDeviceName() {
    String deviceName = mSettingsConfigStore.get(WIFI_P2P_DEVICE_NAME);
    //add by zengqb for wifi hotspot use devicename
    String name = getDeviceName();
    if(!name.isEmpty())
    deviceName = name;
    //add by zengqb for wifi hotspot use devicename
    if (deviceName == null) {
    12.“WLAN//添加网络//隐藏的网络”默认为“是”
    packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController.java
    mHiddenSettingsSpinner.setSelection(HIDDEN_NETWORK);//add by zengqb for default HIDDEN_NETWORK is ture
    13.:删除光感、近距离和陀螺仪
    device/sprd/sharkl5Pro/ums512_1h10/module/sensor/md.mk
    14.设备无震动马达,删除vibrator配置
    device/sprd/mpool/module/vibrator/main.mk
    #PRODUCT_PACKAGES += \

vendor.sprd.hardware.vibrator-impl

#$(call md-add, vendor/sprd/modules/devdrv/input/vibrator/vibdrv.mk)
device/sprd/mpool/module/vibrator/mversion/full/full.mk
#PRODUCT_PACKAGES += \

vendor.sprd.hardware.vibrator-service

device/sprd/mpool/product/soc/msoc/unisoc_generic/march/arm64/manifest.xml

15.MTP PTP名称同步设备名称
frameworks/base/media/java/android/mtp/MtpDatabase.java

import android.provider.Settings;
import android.os.Build;
/**
 * MtpDatabase provides an interface for MTP operations that MtpServer can use. To do this, it uses
 * MtpStorageManager for filesystem operations and MediaProvider to get media metadata. File
                return MtpConstants.RESPONSE_OBJECT_PROP_NOT_SUPPORTED;
        }
    }

	
    private String getDeviceName() {
        // Keep device name in sync with Settings > About phone > Device name
        String deviceName = Settings.Global.getString(mContext.getContentResolver(),
                Settings.Global.DEVICE_NAME);
        if (deviceName == null) {
            deviceName = Build.MODEL;
        }
        return deviceName;
    }
	
    @VisibleForNative
    private int getDeviceProperty(int property, long[] outIntValue, char[] outStringValue) {
        switch (property) {
            case MtpConstants.DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME:
                // writable string properties kept in shared preferences
                String value = mDeviceProperties.getString(Integer.toString(property), "");
				//add by zengqb for MTP PTP Keep device name in sync with Settings > About phone > Device name
				value = getDeviceName();
				
                int length = value.length();

16.无指纹项目,删除指纹配置
在这里插入图片描述
17.默认mtp功能
在这里插入图片描述

bug修改

1.解决 与苹果手机QQ视频 ,苹果手机端画面变绿(主要是跟苹果比较老的型号验证出现,X之前的型号会出现,11之后不会)
vendor/sprd/modules/media/v2/omx-components/video/avc/enc/SPRDAVCEncoder.cpp
@@ -661,12 +661,14 @@ OMX_ERRORTYPE SPRDAVCEncoder::internalSetParameter(
}
mVideoBitRate = bitRate->nTargetBitrate;

  •           //dele by zengqb for use iphone qq video display blue
    
  •           /*
       if(bitRate->eControlRate == OMX_Video_ControlRateConstant) {
           //for samsung, samsung set cbr instead of mEncSceneMode.
           //for sprd, volte set mEncSceneMode, wfd set mEncSceneMode and cbr.
           if (!mSetEncMode)
               mEncSceneMode = 1;  //encode in volte mode.
    
  •    }
    
  •    }*/
       if(bitRate->eControlRate == OMX_Video_ControlRateDisable)
       {
    

2.音量等级改为15级,解决调节音量突变问题
device/sprd/mpool/module/audio/msoc/sharkl5Pro/system/etc/parameter-framework/audio_policy_engine_stream_volumes.xml
@@ -90,7 +90,7 @@ volume index from 0 to 100.

music
0

  •    <indexMax>25</indexMax>
    
  •    <indexMax>15</indexMax>
    

3.横屏时桌面hotseat显示在下面,同时显示谷歌搜索框
packages/apps/Launcher3/res/values/config.xml
false

4.分屏界面 调整其中一个界面的大小,旋转屏幕后,显示黑块问题
frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
mRotateSplitLayout = sdl;

  •            final int position = isDividerVisible()
    
  •            /*final int position = isDividerVisible()
                      ? (mMinimized ? mView.mSnapTargetBeforeMinimized.position
                              : mView.getCurrentPosition())
                      // snap resets to middle target when not in split-mode
    
  •   				*/
    
  •   		final int position = mMinimized ? mView.mSnapTargetBeforeMinimized.position		
    

5.打开自动调节亮度功能,手动把亮度调节最大或最小,然后重新关闭打开自动调节亮度功能,然后自动调节功能就出现不精准的情况
此问题为谷歌原生设计如此,打开自动亮度调节后,手动调节亮度后,亮度只能用户手动调节亮度附近变动,要修改此问题,可以在切换自动亮度开关时,清除用户手动设置亮度
frameworks\base\services\core\java\com\android\server\display\AutomaticBrightnessController.java
private boolean setLightSensorEnabled(boolean enable) {
if (enable) {
if (!mLightSensorEnabled) {
mLightSensorEnabled = true;
mLightSensorEnableTime = SystemClock.uptimeMillis();
mCurrentLightSensorRate = mInitialLightSensorRate;
registerForegroundAppUpdater();
mSensorManager.registerListener(mLightSensorListener, mLightSensor,
mCurrentLightSensorRate * 1000, mHandler);
return true;
}
} else if (mLightSensorEnabled) {
mLightSensorEnabled = false;
mAmbientLuxValid = !mResetAmbientLuxAfterWarmUpConfig;
mScreenAutoBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT;
mRecentLightSamples = 0;
mAmbientLightRingBuffer.clear();
mCurrentLightSensorRate = -1;
mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
unregisterForegroundAppUpdater();
mSensorManager.unregisterListener(mLightSensorListener);
//UNISOC: Support automatic backlight to clear user data points.
if (mClearUserDataPointsConfig) {
Slog.d(TAG, “Clear user data points.”);
mBrightnessMapper.clearUserDataPoints();
}

}
return false;
}
mClearUserDataPointsConfig 可修改config_clearUserDataPointsEnable为true来配置

   - <bool name="config_clearUserDataPointsEnable">false</bool>
   +<bool name="config_clearUserDataPointsEnable">true</bool>

GMS fail修改
1.修改两台机器之间无法mtp互联,导致cts-v测试fail问题
在这里插入图片描述
2.回退allow untrusted_app proc_net:file { read }修改,此修改影响cts testProcNetSane testTcpDefaultRwndSane测试fail
在这里插入图片描述
3.添加MAINLINE_PATCH_LEVEL_1 := true解决gts testMainlinePatchLevel测试
在这里插入图片描述
4.删除android.hardware.se.omapi.uicc.xml解决cts CtsOmapiTestCases fail
在这里插入图片描述
5.无指纹项目,删除指纹配置
在这里插入图片描述
无指纹功能,删除config_biometric_sensors中的0:2:15,
解决cts-v Biometric Tests 2a:Strong Biometrics + Crypto fail
在这里插入图片描述
6. 后摄imx258 cts测试android.hardware.camera2.cts.StillCaptureTest#testFocalLengths[1]
报Exif TAG_EXPOSURE_TIME null fail
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值