am 80c023db: Merge "Revert "Revert "mako: disable DFS scan, enable country code from SIM""" into jb-mr2-dev

* commit '80c023dbe22efc39d5b6edef4b9234bb74b18f9d':
  Revert "Revert "mako: disable DFS scan, enable country code from SIM""
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
index 0e45d86..8048b0f 100755
--- a/factory-images/generate-factory-images-package.sh
+++ b/factory-images/generate-factory-images-package.sh
@@ -20,15 +20,21 @@
 # 526897 = JOP39B
 # 527221 = JOP40
 # 527662 = JOP40C
-# 573038 = JDQ39
 # end jb-mr1-dev
+# start jb-mr1.1-dev
+# 573038 = JDQ39
+# end jb-mr1.1-dev
+# start jb-mr2-dev
+# 683083 = JWR51
+# 689345 = JWR58
+# end jb-mr2-dev
 
 source ../../../common/clear-factory-images-variables.sh
-BUILD=573038
+BUILD=689345
 DEVICE=mako
 PRODUCT=occam
-VERSION=jdq39
-SRCPREFIX=signed-
-BOOTLOADER=makoz10o
-RADIO=m9615a-cefwmazm-2.0.1700.48
+VERSION=jwr58
+#SRCPREFIX=signed-
+BOOTLOADER=makoz20g
+RADIO=m9615a-cefwmazm-2.0.1700.77
 source ../../../common/generate-factory-images-common.sh
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
new file mode 100644
index 0000000..79e0a04
--- /dev/null
+++ b/self-extractors/extract-lists.txt
@@ -0,0 +1,156 @@
+  broadcom)
+    TO_EXTRACT="\
+            system/vendor/firmware/bcm2079x_firmware.ncd \
+            system/vendor/firmware/bcm2079x_pre_firmware.ncd \
+            "
+    ;;
+  lge)
+    TO_EXTRACT="\
+            system/etc/DxHDCP.cfg \
+            system/lib/libAKM.so \
+            system/lib/libDxHdcp.so \
+            system/lib/libacdbdata.so \
+            system/lib/libcamera_fast_af.so \
+            system/lib/libmorpho_noise_reduction.so \
+            system/vendor/firmware/discretix/dxhdcp2.b00 \
+            system/vendor/firmware/discretix/dxhdcp2.b01 \
+            system/vendor/firmware/discretix/dxhdcp2.b02 \
+            system/vendor/firmware/discretix/dxhdcp2.b03 \
+            system/vendor/firmware/discretix/dxhdcp2.mdt \
+            system/vendor/firmware/keymaster/keymaster.b00 \
+            system/vendor/firmware/keymaster/keymaster.b01 \
+            system/vendor/firmware/keymaster/keymaster.b02 \
+            system/vendor/firmware/keymaster/keymaster.b03 \
+            system/vendor/firmware/keymaster/keymaster.mdt \
+            "
+    ;;
+  qcom)
+    TO_EXTRACT="\
+            system/bin/ATFWD-daemon \
+            system/bin/bridgemgrd \
+            system/bin/btnvtool \
+            system/bin/diag_klog \
+            system/bin/diag_mdlog \
+            system/bin/ds_fmc_appd \
+            system/bin/efsks \
+            system/bin/hci_qcomm_init \
+            system/bin/ks \
+            system/bin/mm-qcamera-daemon \
+            system/bin/mpdecision \
+            system/bin/netmgrd \
+            system/bin/nl_listener \
+            system/bin/port-bridge \
+            system/bin/qcks \
+            system/bin/qmuxd \
+            system/bin/qseecomd \
+            system/bin/radish \
+            system/bin/rmt_storage \
+            system/bin/sensors.qcom \
+            system/bin/thermald \
+            system/bin/usbhub \
+            system/bin/usbhub_init \
+            system/bin/v4l2-qcamera-app \
+            system/etc/firmware/vidc.b00 \
+            system/etc/firmware/vidc.b01 \
+            system/etc/firmware/vidc.b02 \
+            system/etc/firmware/vidc.b03 \
+            system/etc/firmware/vidc.mdt \
+            system/etc/firmware/vidc_1080p.fw \
+            system/lib/egl/eglsubAndroid.so \
+            system/lib/egl/libEGL_adreno200.so \
+            system/lib/egl/libGLESv1_CM_adreno200.so \
+            system/lib/egl/libGLESv2_adreno200.so \
+            system/lib/egl/libq3dtools_adreno200.so \
+            system/lib/hw/gps.msm8960.so \
+            system/lib/hw/sensors.msm8960.so \
+            system/lib/libC2D2.so \
+            system/lib/libCommandSvc.so \
+            system/lib/libI420colorconvert.so \
+            system/lib/libQSEEComAPI.so \
+            system/lib/libacdbloader.so \
+            system/lib/libaudcal.so \
+            system/lib/libaudioalsa.so \
+            system/lib/libc2d2_a3xx.so \
+            system/lib/libchromatix_imx111_default_video.so \
+            system/lib/libchromatix_imx111_preview.so \
+            system/lib/libchromatix_imx111_zsl.so \
+            system/lib/libchromatix_imx119_default_video.so \
+            system/lib/libchromatix_imx119_preview.so \
+            system/lib/libchromatix_mt9e013_default_video.so \
+            system/lib/libchromatix_mt9e013_preview.so \
+            system/lib/libchromatix_mt9e013_video_hfr.so \
+            system/lib/libchromatix_ov5647_default_video.so \
+            system/lib/libchromatix_ov5647_preview.so \
+            system/lib/libchromatix_ov5647_video_hfr.so \
+            system/lib/libchromatix_ov8825_default_video.so \
+            system/lib/libchromatix_ov8825_preview.so \
+            system/lib/libchromatix_ov9726_default_video.so \
+            system/lib/libchromatix_ov9726_preview.so \
+            system/lib/libchromatix_s5k4e1_default_video.so \
+            system/lib/libchromatix_s5k4e1_preview.so \
+            system/lib/libchromatix_vx6953_default_video.so \
+            system/lib/libchromatix_vx6953_preview.so \
+            system/lib/libconfigdb.so \
+            system/lib/libcsd-client.so \
+            system/lib/libdiag.so \
+            system/lib/libdrmdiag.so \
+            system/lib/libdrmfs.so \
+            system/lib/libdrmtime.so \
+            system/lib/libdsi_netctrl.so \
+            system/lib/libdsprofile.so \
+            system/lib/libdss.so \
+            system/lib/libdsucsd.so \
+            system/lib/libdsutils.so \
+            system/lib/libgemini.so \
+            system/lib/libgeofence.so \
+            system/lib/libgps.utils.so \
+            system/lib/libgsl.so \
+            system/lib/libidl.so \
+            system/lib/libimage-jpeg-dec-omx-comp.so \
+            system/lib/libimage-jpeg-enc-omx-comp.so \
+            system/lib/libimage-omx-common.so \
+            system/lib/libllvm-a3xx.so \
+            system/lib/libloc_adapter.so \
+            system/lib/libloc_api_v02.so \
+            system/lib/libloc_eng.so \
+            system/lib/libmercury.so \
+            system/lib/libmm-color-convertor.so \
+            system/lib/libmmcamera_faceproc.so \
+            system/lib/libmmcamera_frameproc.so \
+            system/lib/libmmcamera_hdr_lib.so \
+            system/lib/libmmcamera_image_stab.so \
+            system/lib/libmmcamera_statsproc31.so \
+            system/lib/libmmcamera_wavelet_lib.so \
+            system/lib/libmmipl.so \
+            system/lib/libmmjpeg.so \
+            system/lib/libmmjps.so \
+            system/lib/libmmmpo.so \
+            system/lib/libmmmpod.so \
+            system/lib/libmmstillomx.so \
+            system/lib/libnetmgr.so \
+            system/lib/liboemcamera.so \
+            system/lib/liboemcrypto.so \
+            system/lib/libqcci_legacy.so \
+            system/lib/libqdi.so \
+            system/lib/libqdp.so \
+            system/lib/libqmi.so \
+            system/lib/libqmi_cci.so \
+            system/lib/libqmi_client_qmux.so \
+            system/lib/libqmi_common_so.so \
+            system/lib/libqmi_csi.so \
+            system/lib/libqmi_csvt_srvc.so \
+            system/lib/libqmi_encdec.so \
+            system/lib/libqmiservices.so \
+            system/lib/libril-qc-qmi-1.so \
+            system/lib/libril-qcril-hook-oem.so \
+            system/lib/libsc-a3xx.so \
+            system/lib/libsensor1.so \
+            system/lib/libsensor_reg.so \
+            system/lib/libsensor_user_cal.so \
+            system/lib/libstagefright_hdcp.so \
+            system/lib/libxml.so \
+            system/vendor/firmware/a300_pfp.fw \
+            system/vendor/firmware/a300_pm4.fw \
+            system/vendor/lib/libdrmdecrypt.so \
+            "
+    ;;
diff --git a/self-extractors/files-by-owner.sh b/self-extractors/files-by-owner.sh
new file mode 100755
index 0000000..920ce4b
--- /dev/null
+++ b/self-extractors/files-by-owner.sh
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Copyright 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+rm -f extract-lists.txt
+cat ../vendor_owner_info.txt |
+cut -d : -f 2 |
+sort -u |
+grep -v google |
+while read target_owner
+do
+cat > $target_owner/staging/device-partial.mk << EOF
+# Copyright 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+EOF
+echo -n "# " >> $target_owner/staging/device-partial.mk
+case $target_owner in
+broadcom)
+echo -n Broadcom >> $target_owner/staging/device-partial.mk
+;;
+lge)
+echo -n LGE >> $target_owner/staging/device-partial.mk
+;;
+qcom)
+echo -n Qualcomm >> $target_owner/staging/device-partial.mk
+;;
+esac
+echo " blob(s) necessary for Mako hardware" >> $target_owner/staging/device-partial.mk
+echo "PRODUCT_COPY_FILES := \\" >> $target_owner/staging/device-partial.mk
+
+echo "  $target_owner)" >> extract-lists.txt
+echo "    TO_EXTRACT=\"\\" >> extract-lists.txt
+
+
+cat ../proprietary-blobs.txt |
+grep ^/ |
+cut -b 2- |
+sort |
+while read file
+do
+
+auto_owner=$(grep ^$file: ../vendor_owner_info.txt | cut -d : -f 2)
+if test $file = system/lib/hw/gps.msm8960.so -o $file = system/lib/libgps.utils.so -o $file = system/lib/libloc_adapter.so -o $file = system/lib/libloc_eng.so
+then
+auto_owner=qcom
+fi
+
+if test "$auto_owner" = "$target_owner"
+then
+if test $file != system/lib/libacdbloader.so
+then
+echo "    vendor/$target_owner/mako/proprietary/$(basename $file):$file:$target_owner \\" >> $target_owner/staging/device-partial.mk
+fi
+echo "            $file \\" >> extract-lists.txt
+fi
+done
+
+echo >> $target_owner/staging/device-partial.mk
+if test $target_owner = qcom
+then
+echo PRODUCT_PACKAGES := libacdbloader >> $target_owner/staging/device-partial.mk
+fi
+
+echo "            \"" >> extract-lists.txt
+echo "    ;;" >> extract-lists.txt
+done
diff --git a/self-extractors/generate-packages.sh b/self-extractors/generate-packages.sh
index 3ab8af4..25f53e4 100755
--- a/self-extractors/generate-packages.sh
+++ b/self-extractors/generate-packages.sh
@@ -18,12 +18,21 @@
 # 569806 = JDQ36B
 # 573038 = JDQ39
 # end jb-mr1.1-dev
-BRANCH=jb-mr1.1-dev
+# start jb-mr2-dev
+# 686185 = JWR53
+# 689345 = JWR58
+# end jb-mr2-dev
+BRANCH=jb-mr2-dev
 if test $BRANCH = jb-mr1.1-dev
 then
   ZIP=occam-ota-573038.zip
   BUILD=jdq39
 fi # jb-mr1.1-dev
+if test $BRANCH = jb-mr2-dev
+then
+  ZIP=occam-ota-689345
+  BUILD=jwr58
+fi # jb-mr2-dev
 ROOTDEVICE=mako
 DEVICE=mako
 MANUFACTURER=lge
@@ -47,6 +56,7 @@
             system/etc/DxHDCP.cfg \
             system/lib/libAKM.so \
             system/lib/libDxHdcp.so \
+            system/lib/libacdbdata.so \
             system/lib/libcamera_fast_af.so \
             system/lib/libmorpho_noise_reduction.so \
             system/vendor/firmware/discretix/dxhdcp2.b00 \
@@ -72,7 +82,6 @@
             system/bin/efsks \
             system/bin/hci_qcomm_init \
             system/bin/ks \
-            system/bin/mm-audio-send-cal \
             system/bin/mm-qcamera-daemon \
             system/bin/mpdecision \
             system/bin/netmgrd \
@@ -88,45 +97,27 @@
             system/bin/usbhub \
             system/bin/usbhub_init \
             system/bin/v4l2-qcamera-app \
-            system/etc/diag.cfg \
-            system/etc/firmware/a225_pfp.fw \
-            system/etc/firmware/a225_pm4.fw \
-            system/etc/firmware/a225p5_pm4.fw \
-            system/etc/firmware/a300_pfp.fw \
-            system/etc/firmware/a300_pm4.fw \
-            system/etc/firmware/leia_pfp_470.fw \
-            system/etc/firmware/leia_pm4_470.fw \
             system/etc/firmware/vidc.b00 \
             system/etc/firmware/vidc.b01 \
             system/etc/firmware/vidc.b02 \
             system/etc/firmware/vidc.b03 \
             system/etc/firmware/vidc.mdt \
             system/etc/firmware/vidc_1080p.fw \
-            system/etc/firmware/vidcfw.elf \
             system/lib/egl/eglsubAndroid.so \
             system/lib/egl/libEGL_adreno200.so \
             system/lib/egl/libGLESv1_CM_adreno200.so \
-            system/lib/egl/libGLESv2S3D_adreno200.so \
             system/lib/egl/libGLESv2_adreno200.so \
-            system/lib/egl/libplayback_adreno200.so \
             system/lib/egl/libq3dtools_adreno200.so \
+            system/lib/hw/gps.msm8960.so \
             system/lib/hw/sensors.msm8960.so \
             system/lib/libC2D2.so \
             system/lib/libCommandSvc.so \
             system/lib/libI420colorconvert.so \
-            system/lib/libOmxAacDec.so \
-            system/lib/libOmxWmaDec.so \
-            system/lib/libOpenCL.so \
-            system/lib/libOpenVG.so \
             system/lib/libQSEEComAPI.so \
-            system/lib/lib_dlb_msd.so \
             system/lib/libacdbloader.so \
-            system/lib/libalsautils.so \
             system/lib/libaudcal.so \
             system/lib/libaudioalsa.so \
-            system/lib/libaudioparsers.so \
             system/lib/libc2d2_a3xx.so \
-            system/lib/libc2d2_z180.so \
             system/lib/libchromatix_imx111_default_video.so \
             system/lib/libchromatix_imx111_preview.so \
             system/lib/libchromatix_imx111_zsl.so \
@@ -158,14 +149,17 @@
             system/lib/libdsucsd.so \
             system/lib/libdsutils.so \
             system/lib/libgemini.so \
+            system/lib/libgeofence.so \
+            system/lib/libgps.utils.so \
             system/lib/libgsl.so \
             system/lib/libidl.so \
             system/lib/libimage-jpeg-dec-omx-comp.so \
             system/lib/libimage-jpeg-enc-omx-comp.so \
             system/lib/libimage-omx-common.so \
             system/lib/libllvm-a3xx.so \
-            system/lib/libllvm-arm.so \
+            system/lib/libloc_adapter.so \
             system/lib/libloc_api_v02.so \
+            system/lib/libloc_eng.so \
             system/lib/libmercury.so \
             system/lib/libmm-color-convertor.so \
             system/lib/libmmcamera_faceproc.so \
@@ -182,6 +176,7 @@
             system/lib/libmmstillomx.so \
             system/lib/libnetmgr.so \
             system/lib/liboemcamera.so \
+            system/lib/liboemcrypto.so \
             system/lib/libqcci_legacy.so \
             system/lib/libqdi.so \
             system/lib/libqdp.so \
@@ -195,13 +190,14 @@
             system/lib/libqmiservices.so \
             system/lib/libril-qc-qmi-1.so \
             system/lib/libril-qcril-hook-oem.so \
-            system/lib/libsc-a2xx.so \
             system/lib/libsc-a3xx.so \
             system/lib/libsensor1.so \
             system/lib/libsensor_reg.so \
             system/lib/libsensor_user_cal.so \
             system/lib/libstagefright_hdcp.so \
             system/lib/libxml.so \
+            system/vendor/firmware/a300_pfp.fw \
+            system/vendor/firmware/a300_pm4.fw \
             system/vendor/lib/libdrmdecrypt.so \
             "
     ;;
diff --git a/self-extractors/lge/staging/device-partial.mk b/self-extractors/lge/staging/device-partial.mk
index 3dcd7ee..fcad7b1 100644
--- a/self-extractors/lge/staging/device-partial.mk
+++ b/self-extractors/lge/staging/device-partial.mk
@@ -17,6 +17,7 @@
     vendor/lge/mako/proprietary/DxHDCP.cfg:system/etc/DxHDCP.cfg:lge \
     vendor/lge/mako/proprietary/libAKM.so:system/lib/libAKM.so:lge \
     vendor/lge/mako/proprietary/libDxHdcp.so:system/lib/libDxHdcp.so:lge \
+    vendor/lge/mako/proprietary/libacdbdata.so:system/lib/libacdbdata.so:lge \
     vendor/lge/mako/proprietary/libcamera_fast_af.so:system/lib/libcamera_fast_af.so:lge \
     vendor/lge/mako/proprietary/libmorpho_noise_reduction.so:system/lib/libmorpho_noise_reduction.so:lge \
     vendor/lge/mako/proprietary/dxhdcp2.b00:system/vendor/firmware/discretix/dxhdcp2.b00:lge \
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
index 674ac8d..8632c97 100644
--- a/self-extractors/qcom/staging/device-partial.mk
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -23,7 +23,6 @@
     vendor/qcom/mako/proprietary/efsks:system/bin/efsks:qcom \
     vendor/qcom/mako/proprietary/hci_qcomm_init:system/bin/hci_qcomm_init:qcom \
     vendor/qcom/mako/proprietary/ks:system/bin/ks:qcom \
-    vendor/qcom/mako/proprietary/mm-audio-send-cal:system/bin/mm-audio-send-cal:qcom \
     vendor/qcom/mako/proprietary/mm-qcamera-daemon:system/bin/mm-qcamera-daemon:qcom \
     vendor/qcom/mako/proprietary/mpdecision:system/bin/mpdecision:qcom \
     vendor/qcom/mako/proprietary/netmgrd:system/bin/netmgrd:qcom \
@@ -39,45 +38,26 @@
     vendor/qcom/mako/proprietary/usbhub:system/bin/usbhub:qcom \
     vendor/qcom/mako/proprietary/usbhub_init:system/bin/usbhub_init:qcom \
     vendor/qcom/mako/proprietary/v4l2-qcamera-app:system/bin/v4l2-qcamera-app:qcom \
-    vendor/qcom/mako/proprietary/diag.cfg:system/etc/diag.cfg:qcom \
-    vendor/qcom/mako/proprietary/a225_pfp.fw:system/etc/firmware/a225_pfp.fw:qcom \
-    vendor/qcom/mako/proprietary/a225_pm4.fw:system/etc/firmware/a225_pm4.fw:qcom \
-    vendor/qcom/mako/proprietary/a225p5_pm4.fw:system/etc/firmware/a225p5_pm4.fw:qcom \
-    vendor/qcom/mako/proprietary/a300_pfp.fw:system/etc/firmware/a300_pfp.fw:qcom \
-    vendor/qcom/mako/proprietary/a300_pm4.fw:system/etc/firmware/a300_pm4.fw:qcom \
-    vendor/qcom/mako/proprietary/leia_pfp_470.fw:system/etc/firmware/leia_pfp_470.fw:qcom \
-    vendor/qcom/mako/proprietary/leia_pm4_470.fw:system/etc/firmware/leia_pm4_470.fw:qcom \
     vendor/qcom/mako/proprietary/vidc.b00:system/etc/firmware/vidc.b00:qcom \
     vendor/qcom/mako/proprietary/vidc.b01:system/etc/firmware/vidc.b01:qcom \
     vendor/qcom/mako/proprietary/vidc.b02:system/etc/firmware/vidc.b02:qcom \
     vendor/qcom/mako/proprietary/vidc.b03:system/etc/firmware/vidc.b03:qcom \
     vendor/qcom/mako/proprietary/vidc.mdt:system/etc/firmware/vidc.mdt:qcom \
     vendor/qcom/mako/proprietary/vidc_1080p.fw:system/etc/firmware/vidc_1080p.fw:qcom \
-    vendor/qcom/mako/proprietary/vidcfw.elf:system/etc/firmware/vidcfw.elf:qcom \
     vendor/qcom/mako/proprietary/eglsubAndroid.so:system/lib/egl/eglsubAndroid.so:qcom \
     vendor/qcom/mako/proprietary/libEGL_adreno200.so:system/lib/egl/libEGL_adreno200.so:qcom \
     vendor/qcom/mako/proprietary/libGLESv1_CM_adreno200.so:system/lib/egl/libGLESv1_CM_adreno200.so:qcom \
-    vendor/qcom/mako/proprietary/libGLESv2S3D_adreno200.so:system/lib/egl/libGLESv2S3D_adreno200.so:qcom \
     vendor/qcom/mako/proprietary/libGLESv2_adreno200.so:system/lib/egl/libGLESv2_adreno200.so:qcom \
-    vendor/qcom/mako/proprietary/libplayback_adreno200.so:system/lib/egl/libplayback_adreno200.so:qcom \
     vendor/qcom/mako/proprietary/libq3dtools_adreno200.so:system/lib/egl/libq3dtools_adreno200.so:qcom \
+    vendor/qcom/mako/proprietary/gps.msm8960.so:system/lib/hw/gps.msm8960.so:qcom \
     vendor/qcom/mako/proprietary/sensors.msm8960.so:system/lib/hw/sensors.msm8960.so:qcom \
     vendor/qcom/mako/proprietary/libC2D2.so:system/lib/libC2D2.so:qcom \
     vendor/qcom/mako/proprietary/libCommandSvc.so:system/lib/libCommandSvc.so:qcom \
     vendor/qcom/mako/proprietary/libI420colorconvert.so:system/lib/libI420colorconvert.so:qcom \
-    vendor/qcom/mako/proprietary/libOmxAacDec.so:system/lib/libOmxAacDec.so:qcom \
-    vendor/qcom/mako/proprietary/libOmxWmaDec.so:system/lib/libOmxWmaDec.so:qcom \
-    vendor/qcom/mako/proprietary/libOpenCL.so:system/lib/libOpenCL.so:qcom \
-    vendor/qcom/mako/proprietary/libOpenVG.so:system/lib/libOpenVG.so:qcom \
     vendor/qcom/mako/proprietary/libQSEEComAPI.so:system/lib/libQSEEComAPI.so:qcom \
-    vendor/qcom/mako/proprietary/lib_dlb_msd.so:system/lib/lib_dlb_msd.so:qcom \
-    vendor/qcom/mako/proprietary/libacdbloader.so:system/lib/libacdbloader.so:qcom \
-    vendor/qcom/mako/proprietary/libalsautils.so:system/lib/libalsautils.so:qcom \
     vendor/qcom/mako/proprietary/libaudcal.so:system/lib/libaudcal.so:qcom \
     vendor/qcom/mako/proprietary/libaudioalsa.so:system/lib/libaudioalsa.so:qcom \
-    vendor/qcom/mako/proprietary/libaudioparsers.so:system/lib/libaudioparsers.so:qcom \
     vendor/qcom/mako/proprietary/libc2d2_a3xx.so:system/lib/libc2d2_a3xx.so:qcom \
-    vendor/qcom/mako/proprietary/libc2d2_z180.so:system/lib/libc2d2_z180.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_default_video.so:system/lib/libchromatix_imx111_default_video.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_preview.so:system/lib/libchromatix_imx111_preview.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_zsl.so:system/lib/libchromatix_imx111_zsl.so:qcom \
@@ -109,14 +89,17 @@
     vendor/qcom/mako/proprietary/libdsucsd.so:system/lib/libdsucsd.so:qcom \
     vendor/qcom/mako/proprietary/libdsutils.so:system/lib/libdsutils.so:qcom \
     vendor/qcom/mako/proprietary/libgemini.so:system/lib/libgemini.so:qcom \
+    vendor/qcom/mako/proprietary/libgeofence.so:system/lib/libgeofence.so:qcom \
+    vendor/qcom/mako/proprietary/libgps.utils.so:system/lib/libgps.utils.so:qcom \
     vendor/qcom/mako/proprietary/libgsl.so:system/lib/libgsl.so:qcom \
     vendor/qcom/mako/proprietary/libidl.so:system/lib/libidl.so:qcom \
     vendor/qcom/mako/proprietary/libimage-jpeg-dec-omx-comp.so:system/lib/libimage-jpeg-dec-omx-comp.so:qcom \
     vendor/qcom/mako/proprietary/libimage-jpeg-enc-omx-comp.so:system/lib/libimage-jpeg-enc-omx-comp.so:qcom \
     vendor/qcom/mako/proprietary/libimage-omx-common.so:system/lib/libimage-omx-common.so:qcom \
     vendor/qcom/mako/proprietary/libllvm-a3xx.so:system/lib/libllvm-a3xx.so:qcom \
-    vendor/qcom/mako/proprietary/libllvm-arm.so:system/lib/libllvm-arm.so:qcom \
+    vendor/qcom/mako/proprietary/libloc_adapter.so:system/lib/libloc_adapter.so:qcom \
     vendor/qcom/mako/proprietary/libloc_api_v02.so:system/lib/libloc_api_v02.so:qcom \
+    vendor/qcom/mako/proprietary/libloc_eng.so:system/lib/libloc_eng.so:qcom \
     vendor/qcom/mako/proprietary/libmercury.so:system/lib/libmercury.so:qcom \
     vendor/qcom/mako/proprietary/libmm-color-convertor.so:system/lib/libmm-color-convertor.so:qcom \
     vendor/qcom/mako/proprietary/libmmcamera_faceproc.so:system/lib/libmmcamera_faceproc.so:qcom \
@@ -133,6 +116,7 @@
     vendor/qcom/mako/proprietary/libmmstillomx.so:system/lib/libmmstillomx.so:qcom \
     vendor/qcom/mako/proprietary/libnetmgr.so:system/lib/libnetmgr.so:qcom \
     vendor/qcom/mako/proprietary/liboemcamera.so:system/lib/liboemcamera.so:qcom \
+    vendor/qcom/mako/proprietary/liboemcrypto.so:system/lib/liboemcrypto.so:qcom \
     vendor/qcom/mako/proprietary/libqcci_legacy.so:system/lib/libqcci_legacy.so:qcom \
     vendor/qcom/mako/proprietary/libqdi.so:system/lib/libqdi.so:qcom \
     vendor/qcom/mako/proprietary/libqdp.so:system/lib/libqdp.so:qcom \
@@ -146,12 +130,14 @@
     vendor/qcom/mako/proprietary/libqmiservices.so:system/lib/libqmiservices.so:qcom \
     vendor/qcom/mako/proprietary/libril-qc-qmi-1.so:system/lib/libril-qc-qmi-1.so:qcom \
     vendor/qcom/mako/proprietary/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so:qcom \
-    vendor/qcom/mako/proprietary/libsc-a2xx.so:system/lib/libsc-a2xx.so:qcom \
     vendor/qcom/mako/proprietary/libsc-a3xx.so:system/lib/libsc-a3xx.so:qcom \
     vendor/qcom/mako/proprietary/libsensor1.so:system/lib/libsensor1.so:qcom \
     vendor/qcom/mako/proprietary/libsensor_reg.so:system/lib/libsensor_reg.so:qcom \
     vendor/qcom/mako/proprietary/libsensor_user_cal.so:system/lib/libsensor_user_cal.so:qcom \
     vendor/qcom/mako/proprietary/libstagefright_hdcp.so:system/lib/libstagefright_hdcp.so:qcom \
     vendor/qcom/mako/proprietary/libxml.so:system/lib/libxml.so:qcom \
+    vendor/qcom/mako/proprietary/a300_pfp.fw:system/vendor/firmware/a300_pfp.fw:qcom \
+    vendor/qcom/mako/proprietary/a300_pm4.fw:system/vendor/firmware/a300_pm4.fw:qcom \
     vendor/qcom/mako/proprietary/libdrmdecrypt.so:system/vendor/lib/libdrmdecrypt.so:qcom \
 
+PRODUCT_PACKAGES := libacdbloader
diff --git a/self-extractors/qcom/staging/proprietary/Android.mk b/self-extractors/qcom/staging/proprietary/Android.mk
index 42a6e07..adcfb03 100644
--- a/self-extractors/qcom/staging/proprietary/Android.mk
+++ b/self-extractors/qcom/staging/proprietary/Android.mk
@@ -12,16 +12,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+LOCAL_PATH := $(call my-dir)
+
 ifeq ($(TARGET_DEVICE),mako)
 
-# This is ugly for more reasons than I can mention. Don't think
-# that this is a good idea. It's not. It's horrible. It's truly
-# entirely horrible. It's not an elegant hack in any way.
+include $(CLEAR_VARS)
+LOCAL_MODULE := libacdbloader
+LOCAL_SRC_FILES := libacdbloader.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
 
-$(shell mkdir -p $(TARGET_OUT_ETC)/firmware/wcd9310; \
+# Create symbolic link because user space can access persist directory,
+# while kernel ALSA drivers can only access the /system/etc/firmware directory
+LOCAL_POST_INSTALL_CMD := \
+    mkdir -p $(TARGET_OUT_ETC)/firmware/wcd9310; \
         ln -sf /data/misc/audio/wcd9310_anc.bin \
         $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_anc.bin; \
         ln -sf /data/misc/audio/mbhc.bin \
-        $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_mbhc.bin)
+        $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_mbhc.bin
+
+include $(BUILD_PREBUILT)
 
 endif
diff --git a/vendor_owner_info.txt b/vendor_owner_info.txt
new file mode 100644
index 0000000..eba4744
--- /dev/null
+++ b/vendor_owner_info.txt
@@ -0,0 +1,142 @@
+root/adb_keys:google
+system/bin/ATFWD-daemon:qcom
+system/etc/DxHDCP.cfg:lge
+system/vendor/firmware/bcm2079x_firmware.ncd:broadcom
+system/vendor/firmware/bcm2079x_pre_firmware.ncd:broadcom
+system/bin/bridgemgrd:qcom
+system/bin/btnvtool:qcom
+system/bin/diag_klog:qcom
+system/bin/diag_mdlog:qcom
+system/bin/ds_fmc_appd:qcom
+system/vendor/firmware/discretix/dxhdcp2.b00:lge
+system/vendor/firmware/discretix/dxhdcp2.b01:lge
+system/vendor/firmware/discretix/dxhdcp2.b02:lge
+system/vendor/firmware/discretix/dxhdcp2.b03:lge
+system/vendor/firmware/discretix/dxhdcp2.mdt:lge
+system/bin/efsks:qcom
+system/bin/hci_qcomm_init:qcom
+system/vendor/firmware/keymaster/keymaster.b00:lge
+system/vendor/firmware/keymaster/keymaster.b01:lge
+system/vendor/firmware/keymaster/keymaster.b02:lge
+system/vendor/firmware/keymaster/keymaster.b03:lge
+system/vendor/firmware/keymaster/keymaster.mdt:lge
+system/bin/ks:qcom
+system/lib/libAKM.so:lge
+system/lib/libCommandSvc.so:qcom
+system/lib/libDxHdcp.so:lge
+system/lib/libI420colorconvert.so:qcom
+system/lib/libQSEEComAPI.so:qcom
+system/lib/libacdbdata.so:lge
+system/lib/libacdbloader.so:qcom
+system/lib/libaudcal.so:qcom
+system/lib/libaudioalsa.so:qcom
+system/lib/libcamera_fast_af.so:lge
+system/lib/libchromatix_imx111_default_video.so:qcom
+system/lib/libchromatix_imx111_preview.so:qcom
+system/lib/libchromatix_imx111_zsl.so:qcom
+system/lib/libchromatix_imx119_default_video.so:qcom
+system/lib/libchromatix_imx119_preview.so:qcom
+system/lib/libchromatix_mt9e013_default_video.so:qcom
+system/lib/libchromatix_mt9e013_preview.so:qcom
+system/lib/libchromatix_mt9e013_video_hfr.so:qcom
+system/lib/libchromatix_ov5647_default_video.so:qcom
+system/lib/libchromatix_ov5647_preview.so:qcom
+system/lib/libchromatix_ov5647_video_hfr.so:qcom
+system/lib/libchromatix_ov8825_default_video.so:qcom
+system/lib/libchromatix_ov8825_preview.so:qcom
+system/lib/libchromatix_ov9726_default_video.so:qcom
+system/lib/libchromatix_ov9726_preview.so:qcom
+system/lib/libchromatix_s5k4e1_default_video.so:qcom
+system/lib/libchromatix_s5k4e1_preview.so:qcom
+system/lib/libchromatix_vx6953_default_video.so:qcom
+system/lib/libchromatix_vx6953_preview.so:qcom
+system/lib/libconfigdb.so:qcom
+system/lib/libcsd-client.so:qcom
+system/lib/libdiag.so:qcom
+system/vendor/lib/libdrmdecrypt.so:qcom
+system/lib/libdrmdiag.so:qcom
+system/lib/libdrmfs.so:qcom
+system/lib/libdrmtime.so:qcom
+system/lib/libdsi_netctrl.so:qcom
+system/lib/libdsprofile.so:qcom
+system/lib/libdss.so:qcom
+system/lib/libdsucsd.so:qcom
+system/lib/libdsutils.so:qcom
+system/lib/libgemini.so:qcom
+system/lib/libimage-jpeg-dec-omx-comp.so:qcom
+system/lib/libimage-jpeg-enc-omx-comp.so:qcom
+system/lib/libimage-omx-common.so:qcom
+system/lib/libloc_api_v02.so:qcom
+system/lib/libmm-color-convertor.so:qcom
+system/lib/libmmcamera_faceproc.so:qcom
+system/lib/libmmcamera_frameproc.so:qcom
+system/lib/libmmcamera_statsproc31.so:qcom
+system/lib/libmmipl.so:qcom
+system/lib/libmmjpeg.so:qcom
+system/lib/libmmjps.so:qcom
+system/lib/libmmmpo.so:qcom
+system/lib/libmmmpod.so:qcom
+system/lib/libmmstillomx.so:qcom
+system/lib/libmorpho_noise_reduction.so:lge
+system/lib/libnetmgr.so:qcom
+system/lib/liboemcamera.so:qcom
+system/lib/liboemcrypto.so:qcom
+system/lib/libqcci_legacy.so:qcom
+system/lib/libqdi.so:qcom
+system/lib/libqdp.so:qcom
+system/lib/libqmi.so:qcom
+system/lib/libqmi_cci.so:qcom
+system/lib/libqmi_client_qmux.so:qcom
+system/lib/libqmi_common_so.so:qcom
+system/lib/libqmi_csi.so:qcom
+system/lib/libqmi_csvt_srvc.so:qcom
+system/lib/libqmi_encdec.so:qcom
+system/lib/libqmiservices.so:qcom
+system/lib/libril-qc-qmi-1.so:qcom
+system/lib/libril-qcril-hook-oem.so:qcom
+system/lib/libsensor1.so:qcom
+system/lib/libsensor_user_cal.so:qcom
+system/lib/libstagefright_hdcp.so:qcom
+system/bin/mm-qcamera-daemon:qcom
+system/bin/mpdecision:qcom
+system/bin/netmgrd:qcom
+system/bin/nl_listener:qcom
+system/bin/port-bridge:qcom
+system/bin/qcks:qcom
+fake_packages/qcom_8x64_gpu_libs-timestamp:qcom
+system/bin/qmuxd:qcom
+system/bin/qseecomd:qcom
+system/bin/radish:qcom
+system/bin/rmt_storage:qcom
+system/lib/hw/sensors.msm8960.so:qcom
+system/bin/sensors.qcom:qcom
+system/bin/thermald:qcom
+system/bin/usbhub:qcom
+system/bin/usbhub_init:qcom
+system/bin/v4l2-qcamera-app:qcom
+system/etc/firmware/vidc.mdt:qcom
+system/etc/firmware/vidc.b00:qcom
+system/etc/firmware/vidc.b01:qcom
+system/etc/firmware/vidc.b02:qcom
+system/etc/firmware/vidc.b03:qcom
+system/etc/firmware/vidc_1080p.fw:qcom
+system/vendor/firmware/a300_pfp.fw:qcom
+system/vendor/firmware/a300_pm4.fw:qcom
+system/lib/egl/eglsubAndroid.so:qcom
+system/lib/libC2D2.so:qcom
+system/lib/egl/libEGL_adreno200.so:qcom
+system/lib/egl/libGLESv1_CM_adreno200.so:qcom
+system/lib/egl/libGLESv2_adreno200.so:qcom
+system/lib/libc2d2_a3xx.so:qcom
+system/lib/libgsl.so:qcom
+system/lib/libllvm-a3xx.so:qcom
+system/lib/egl/libq3dtools_adreno200.so:qcom
+system/lib/libsc-a3xx.so:qcom
+system/lib/libgeofence.so:qcom
+system/lib/libidl.so:qcom
+system/lib/libmercury.so:qcom
+system/lib/libmmcamera_hdr_lib.so:qcom
+system/lib/libmmcamera_image_stab.so:qcom
+system/lib/libmmcamera_wavelet_lib.so:qcom
+system/lib/libsensor_reg.so:qcom
+system/lib/libxml.so:qcom