**
需求修改记录
**
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
- Returns whether the device is voice-capable (meaning, it is also a phone).
-
: 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