**

需求修改记录

**
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_VIBRATEreturn 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. Filereturn MtpConstants.RESPONSE_OBJECT_PROP_NOT_SUPPORTED;}}private String getDeviceName() {// Keep device name in sync with Settings > About phone > Device nameString deviceName = Settings.Global.getString(mContext.getContentResolver(),Settings.Global.DEVICE_NAME);if (deviceName == null) {deviceName = Build.MODEL;}return deviceName;}@VisibleForNativeprivate int getDeviceProperty(int property, long[] outIntValue, char[] outStringValue) {switch (property) {case MtpConstants.DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME:// writable string properties kept in shared preferencesString value = mDeviceProperties.getString(Integer.toString(property), "");//add by zengqb for MTP PTP Keep device name in sync with Settings > About phone > Device namevalue = 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

展讯Android11 需求bug修改记录相关推荐

  1. 英特尔、联发科、展讯等开始支持开源的物联网轻量化操作系统AliOS Lite

    操作系统AliOS Lite Chaos 12-21 11:03 在 12 月 20 日的云栖大会北京峰会上,阿里宣布即将开源 AliOS Lite,此前面向 IoT 领域的轻量级物联网嵌入式操作系统 ...

  2. 展讯康一:2020年推出5G芯片 第一桶金含金量最高

    工信部部长苗圩在全球5G大会上表示,5G网络将2020年规模商用.对此,终端.芯片.网络方面准备如何?国产自主芯片厂商展讯通信全球副总裁康一博士在接受搜狐科技专访时透露,在5G方面,展讯投入较大,力争 ...

  3. 关于android各种双卡手机获取imei,imsi的处置(mtk,展讯,高通等)

    2019独角兽企业重金招聘Python工程师标准>>> 关于android各种双卡手机获取imei,imsi的处理(mtk,展讯,高通等) 目前国内对于双卡智能手机的需求还是很大的, ...

  4. 展讯召开2017全球合作伙伴大会,发布两款新平台及新战略

    本周三,展讯科技在深圳洲际酒店召开2017全球合作伙伴大会.在本次活动上,展讯不仅发布了全新的SC985系列产品,并且还公布了全新的产品线策略.同时还邀请到了通讯领域合作伙伴:中国移动.中国联通.中国 ...

  5. 7 展讯Sprd设置-电池-关联自启动-跟踪代码

    1. UI-关联自启动 2. 源码走读-上层接口调用 2.1 字符串 strings_ex.xml <string name="app_as_lunch">关联启动&l ...

  6. 小米屏和展讯屏幕调试参考 写的较好(有发送速率)

    MIPI LCD调试总结 http://blog.csdn.net/richu123/article/details/51394464 近来在用SSD2828驱动小米屏,没有代码,没有技术支持,自己写 ...

  7. 展讯平台GPIO调试方法

    GPIO操作的2种方法,1种查看状态的方法 关于GPIO寄存器的描述可以到展讯官网上下载GPIO寄存器的文档,由于网络差,当前登陆不进 1.GPIO被分为8组,每组GPIO对应的操作寄存器地址为 第一 ...

  8. mtk,展讯等手机平台知识杂烩

    mtk 采用联法科技的MT6205.MT6217.MT6218.MT6219.MT6226.MT6227.MT6228基带芯片,芯片均采用ARM7 的核. MT6305.MT6305B为电源管理芯片 ...

  9. (展讯 /RK3066)Android:ADB详解 (2013-01-05 13:36:15)

    转载▼ 标签: android it 分类: Android展讯 (展讯8810) 什么是ADB adb全称Android Debug Bridge,起到调试桥的作用.通过adb在Eclipse的DD ...

最新文章

  1. 10x系列之Clay.io的服务发现
  2. linux c select 设置超时
  3. 代码演示 .NET 4.5 自带的 ReadonlyCollection 的使用
  4. 屌丝就爱尝鲜头——java8初体验
  5. Java 算法 瓷砖铺放
  6. 华为鸿蒙系统是指芯片吗_没有了芯片,华为能靠鸿蒙OS系统打出差异化吗?
  7. 玩转 HMS Core 6.0,详解开发者该知道的黑科技……
  8. 251f与ips屏显示器对比_8百左右预算,2020年PS平面设计/摄影后期显示器推荐/选购指南(全高清+高色域屏)...
  9. python raw input用法_如何在 python raw_input 中使用 tab 键补全?
  10. 动态规划 —— 最长递增子序列(LIS)
  11. 理解 TCP(二):报文结构 1
  12. 调试ffmpeg源码配置config参数(包管用)
  13. 运算放大器仿真 matlab,利用Matlab分析运算放大器电路.doc
  14. 企业管理小故事【有问题4个管理小法则】
  15. 24小时制和12小时制am Matlab,十二钟头制与二十四小时制详解
  16. 教你做表格(史上最全)
  17. Gitlab修改服务端及客户端密码方式方法
  18. SNMP协议——网络管理概述
  19. Java学习-集合类
  20. mysql call_mysql call用法:调用存储过程

热门文章

  1. 【云原生】Apisix接入Nacos、K8s服务注册中心自动获取服务
  2. 【微信小程序】基于百度大脑人体检测、人脸识别以及调用阿里垃圾分类识别小程序利用canvas完成人脸画图、分割手部部分图片算法
  3. 英菲克静音无线鼠标:让工作更安静更顺畅
  4. CCF认证考试题解目录(持续更新)
  5. 【2020年11月】编程语言 / 程序员工资排行榜
  6. Hypermesh在win 11中生成的点不显示问题
  7. 20212高考成绩查询,高考查分手机客户端
  8. Pyqt5实现计时器功能
  9. 教学质量分析系统 php,教学质量分析系统
  10. Google Earth Engine(GEE)——LandScan人口数据集