Merge "betterbug: Update selinux policy for master"
diff --git a/gps/brcm/Android.bp b/gps/brcm/Android.bp
index c0ffc2c..6421e46 100644
--- a/gps/brcm/Android.bp
+++ b/gps/brcm/Android.bp
@@ -49,6 +49,7 @@
 
 cc_prebuilt_binary {
     name: "android.hardware.gnss@2.1-service-brcm",
+    init_rc: ["init.gps.rc"],
     arch: {
         arm64: {
             srcs: ["bin/android.hardware.gnss@2.1-service-brcm"],
diff --git a/gps/brcm/init.gps.rc b/gps/brcm/init.gps.rc
new file mode 100644
index 0000000..62b9bcd
--- /dev/null
+++ b/gps/brcm/init.gps.rc
@@ -0,0 +1,31 @@
+service lhd /vendor/bin/hw/lhd /vendor/etc/gnss/lhd.conf
+    class main
+    user gps
+    group system inet net_raw sdcard_rw
+    ioprio be 0
+
+service gpsd /vendor/bin/hw/gpsd -c /vendor/etc/gnss/gps.xml
+    class main
+    user gps
+    group system gps radio inet wakelock sdcard_rw net_raw
+    ioprio be 0
+
+service scd /vendor/bin/hw/scd /vendor/etc/gnss/scd.conf
+    class main
+    user gps
+    group system inet net_raw wakelock
+    ioprio be 0
+
+service gnss_service /vendor/bin/hw/android.hardware.gnss@2.1-service-brcm
+    class hal
+    user gps
+    group system gps radio
+    ioprio be 0
+    priority -1
+
+# disable gps service if no gps h/w
+on property:vendor.ril.cbd.svc=0
+    stop gpsd
+    stop lhd
+    stop scd
+