aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author467815891a <467815891a@gmail.com>2019-07-23 21:37:24 +0800
committerceltare21 <celtare21@gmail.com>2019-08-22 16:50:21 +0000
commitb9a46e7bcf7c58c381babad457f594bf2540663c (patch)
tree4a731febf421aa3ecc3b712c2ed4d6f0446fa04e
parent4c7603be5e57847ca64fb239a78e4519bef67f54 (diff)
mata: Turn off Bluetooth on boot
Big hack but will do for now hopefully. Signed-off-by: celtare21 <celtare21@gmail.com>
-rw-r--r--device.mk3
-rw-r--r--rootdir/Android.mk8
-rw-r--r--rootdir/bin/bugfix.sh14
-rw-r--r--rootdir/etc/init.mata.rc3
-rw-r--r--sepolicy/vendor/bugfix.te4
-rw-r--r--sepolicy/vendor/file_contexts1
6 files changed, 32 insertions, 1 deletions
diff --git a/device.mk b/device.mk
index 40d91ead..97e17918 100644
--- a/device.mk
+++ b/device.mk
@@ -183,7 +183,8 @@ PRODUCT_PACKAGES += \
init.mata.usb.rc \
init.performance.mata.rc \
init.qcom.devstart.sh \
- ueventd.mata.rc
+ ueventd.mata.rc \
+ bugfix.sh
# IPACM
PRODUCT_PACKAGES += \
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index e118d1dd..9f721deb 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -64,3 +64,11 @@ LOCAL_SRC_FILES := etc/ueventd.mata.rc
# this needs to be in /vendor/ueventd.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := bugfix.sh
+LOCAL_MODULE_TAGS := optional eng
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_SRC_FILES := bin/bugfix.sh
+LOCAL_VENDOR_MODULE := true
+include $(BUILD_PREBUILT)
diff --git a/rootdir/bin/bugfix.sh b/rootdir/bin/bugfix.sh
new file mode 100644
index 00000000..22998e32
--- /dev/null
+++ b/rootdir/bin/bugfix.sh
@@ -0,0 +1,14 @@
+#! /vendor/bin/sh
+if [ "$1" == "bt_off" ]; then
+ if [ -f "/data/system/users/0/settings_global.xml" ] && [ `/vendor/bin/grep -c "name\=\"bluetooth_on\"\ value\=\"1\"" /data/system/users/0/settings_global.xml` -eq '1' ]; then
+ #/vendor/bin/awk 'BEGIN{FS=OFS=" ";RS=ORS="\n"}/bluetooth_on/{$4="value\=\"0\"";$6="defaultValue\=\"0\""}{print > "/data/system/users/0/settings_global.xml"}' /data/system/users/0/settings_global.xml
+ /vendor/bin/sed -i 's/name\=\"bluetooth_on\"\ value\=\"1\"/name\=\"bluetooth_on\"\ value\=\"0\"/' /data/system/users/0/settings_global.xml
+ /vendor/bin/touch /data/local/tmp/bluetooth_on
+ elif [ -f "/data/local/tmp/bluetooth_on" ]; then
+ /vendor/bin/rm /data/local/tmp/bluetooth_on
+ fi
+elif [ "$1" == "bt_on" ]; then
+ if [ -f "/data/local/tmp/bluetooth_on" ]; then
+ /system/bin/service call bluetooth_manager 6
+ fi
+fi
diff --git a/rootdir/etc/init.mata.rc b/rootdir/etc/init.mata.rc
index ca8d8b65..e5b74611 100644
--- a/rootdir/etc/init.mata.rc
+++ b/rootdir/etc/init.mata.rc
@@ -235,6 +235,7 @@ on late-fs
mount_all /vendor/etc/fstab.mata --late
on post-fs-data
+ exec u:r:bugfix:s0 root root -- /vendor/bin/bugfix.sh bt_off
# msm specific files that need to be created on /data
mkdir /data/vendor/misc 01771 system system
@@ -628,6 +629,8 @@ on property:sys.boot_completed=1
# Enable PowerHAL hint processing
setprop vendor.powerhal.init 1
+ exec u:r:bugfix:s0 root root -- /vendor/bin/bugfix.sh bt_on
+
on property:vold.decrypt=trigger_restart_framework
start vendor.qti
start vendor.netmgrd
diff --git a/sepolicy/vendor/bugfix.te b/sepolicy/vendor/bugfix.te
new file mode 100644
index 00000000..ad0139c6
--- /dev/null
+++ b/sepolicy/vendor/bugfix.te
@@ -0,0 +1,4 @@
+type bugfix, domain;
+type bugfix_exec, exec_type, vendor_file_type, file_type;
+permissive bugfix;
+init_daemon_domain(bugfix)
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
index 32c2746b..b3ccced8 100644
--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts
@@ -35,5 +35,6 @@
/vendor/bin/hbtp_cmd\.sh u:object_r:hbtp_cmd_exec:s0
/vendor/bin/init\.qcom\.devstart\.sh u:object_r:init-qcom-devstart-sh_exec:s0
+/vendor/bin/bugfix\.sh u:object_r:bugfix_exec:s0
/vendor/usr/keylayout/uinput-fpc.kl u:object_r:vendor_keylayout_file:s0