代码分析
一般来说蓝牙,默认开启的位置在frameworks层里面定义,但是更改后发现并没有开启,又想到overlay里面把他给覆盖了,(device、vendor、packages、frameworks里面都可能有overlay覆盖原来的代码)更改后发现还是未开启状态,最后在系统里面打开才可以。
frameworks:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
loadBooleanSetting(stmt,Settings.Global.BLUETOOTH_ON,R.bool.def_bluetooth_on);
overlay:
alps/device/mediatek/system/common/overlay/ago/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
old mode 100644
new mode 100755
index 44c2bfb..ee48b3b
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-<bool name="def_bluetooth_on">false</bool>
+<bool name="def_bluetooth_on">true</bool>
<!-- Do not enable auto rotation switching. -->
<bool name="def_accelerometer_rotation">false</bool>
</resources>
PhoneWindowManager.java:
alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 2b55c34..d6f016f 100755
@@ -231,6 +231,8 @@ import java.io.PrintWriter;
import java.util.HashSet;
import java.util.List;
+import android.bluetooth.BluetoothAdapter;
+
/**
* WindowManagerPolicy implementation for the Android phone UI. This
* introduces a new method suffix, Lp, for an internal lock of the
@@ -4831,8 +4833,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
mAutofillManagerInternal = LocalServices.getService(AutofillManagerInternal.class);
+
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ if (!mBluetoothAdapter.isEnabled()) {
+ mBluetoothAdapter.enable(); //lyz default open bt
+ }
}
+ private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+
+
+
/** {@inheritDoc} */
@Override
public void systemBooted() {
代码位置
alps$ git status .
modified: device/mediatek/common/overlay/ago/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
modified: device/mediatek/common/overlay/ago/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
modified: device/mediatek/system/common/overlay/ago/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
modified: device/mediatek/system/common/overlay/ago/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
modified: frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
modified: vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
modified: vendor/mediatek/proprietary/packages/overlay/vendor/SettingsProviderResOverlay/bt_default_off/res/values/defaults.xml
具体代码
alps/device/mediatek/common/overlay/ago/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
old mode 100644
new mode 100755
index 44c2bfb..ee48b3b
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-<bool name="def_bluetooth_on">false</bool>
+<bool name="def_bluetooth_on">true</bool>
<!-- Do not enable auto rotation switching. -->
<bool name="def_accelerometer_rotation">false</bool>
</resources>
alps/device/mediatek/common/overlay/ago/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
index 7ed7bd3..9fde3f7 100755
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-<bool name="def_bluetooth_on">false</bool>
+<bool name="def_bluetooth_on">true</bool>
<!-- Do not enable auto rotation switching. -->
<bool name="def_accelerometer_rotation">false</bool>
<bool name="def_networks_available_notification_on">false</bool>
alps/device/mediatek/system/common/overlay/ago/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
old mode 100644
new mode 100755
index 44c2bfb..ee48b3b
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-<bool name="def_bluetooth_on">false</bool>
+<bool name="def_bluetooth_on">true</bool>
<!-- Do not enable auto rotation switching. -->
<bool name="def_accelerometer_rotation">false</bool>
</resources>
alps/device/mediatek/system/common/overlay/ago/vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml
old mode 100644
new mode 100755
index 7ed7bd3..9fde3f7
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-<bool name="def_bluetooth_on">false</bool>
+<bool name="def_bluetooth_on">true</bool>
<!-- Do not enable auto rotation switching. -->
<bool name="def_accelerometer_rotation">false</bool>
<bool name="def_networks_available_notification_on">false</bool>
alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 2b55c34..d6f016f 100755
@@ -231,6 +231,8 @@ import java.io.PrintWriter;
import java.util.HashSet;
import java.util.List;
+import android.bluetooth.BluetoothAdapter;
+
/**
* WindowManagerPolicy implementation for the Android phone UI. This
* introduces a new method suffix, Lp, for an internal lock of the
@@ -4831,8 +4833,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
mAutofillManagerInternal = LocalServices.getService(AutofillManagerInternal.class);
+
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ if (!mBluetoothAdapter.isEnabled()) {
+ mBluetoothAdapter.enable(); //lyz default open bt
+ }
}
+ private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+
+
+
/** {@inheritDoc} */
@Override
public void systemBooted() {
alps/vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index da0ea47..1af7eaf
@@ -2410,6 +2410,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
R.integer.def_sleep_timeout);
+
+
+ loadSetting(stmt, Settings.Secure.BLUETOOTH_ON,"1");
/// M: Load MTK added Secure providers before Android M.
mUtils.loadCustomSecureSettings(stmt);
alps/vendor/mediatek/proprietary/packages/overlay/vendor/SettingsProviderResOverlay/bt_default_off/res/values/defaults.xml
old mode 100644
new mode 100755
index 0c4c368..f03c49c
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <bool name="def_bluetooth_on">false</bool>
+ <bool name="def_bluetooth_on">true</bool>
</resources>