Merge "Add SEPolicy for vendor_camera_isp_service" into udc-qpr-dev
diff --git a/audio/aidl/device_framework_matrix_product.xml b/audio/aidl/device_framework_matrix_product.xml
index 660864a..10b6e4b 100644
--- a/audio/aidl/device_framework_matrix_product.xml
+++ b/audio/aidl/device_framework_matrix_product.xml
@@ -7,4 +7,12 @@
            <instance>default</instance>
        </interface>
     </hal>
+    <hal format="aidl">
+        <name>vendor.google.whitechapel.audio.extension</name>
+        <version>1</version>
+        <interface>
+            <name>IAudioExtension</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
 </compatibility-matrix>
diff --git a/audio/sepolicy/aidl/service.te b/audio/sepolicy/aidl/service.te
index bf73ead..cbdc404 100644
--- a/audio/sepolicy/aidl/service.te
+++ b/audio/sepolicy/aidl/service.te
@@ -1,3 +1,3 @@
 # Audio
-type hal_audio_ext_service, service_manager_type;
+type hal_audio_ext_service, hal_service_type, service_manager_type;
 type hal_audio_parameter_parser_service, service_manager_type;
diff --git a/camera/sepolicy/vendor_pcs_app.te b/camera/sepolicy/vendor_pcs_app.te
index 112355d..ad15405 100644
--- a/camera/sepolicy/vendor_pcs_app.te
+++ b/camera/sepolicy/vendor_pcs_app.te
@@ -6,6 +6,9 @@
 
 allow vendor_pcs_app cameraserver_service:service_manager find;
 
+# Allow PCS to find the LyricConfigProvider service through ServiceManager.
+allow vendor_pcs_app vendor_camera_lyricconfigprovider_service:service_manager find;
+
 allow vendor_pcs_app hal_pixel_remote_camera_service:service_manager add;
 
 binder_call(vendor_pcs_app, hal_pixel_remote_camera_service);
diff --git a/gps/brcm/prebuilt/SensorHub_A0.patch b/gps/brcm/prebuilt/SensorHub_A0.patch
index f9e6598..6dff717 100644
--- a/gps/brcm/prebuilt/SensorHub_A0.patch
+++ b/gps/brcm/prebuilt/SensorHub_A0.patch
@@ -1,9 +1,9 @@
 <FormatVersion=0x00010003>
 
-<Crc=87>
+<Crc=12>
 <BlobLength=161320>
 <AsicVersion=0x004776A0>
-<ChangeList=572940>
+<ChangeList=576052>
 <PatchLevel=0>
 <PostPatchLevel=1>
 <CustomerVersion=None>
@@ -79,7 +79,7 @@
 009102A101F438F703B000BD4170700080BD8900708989
 00805D8A006905800025643A2564095374617274206368
 70704170705461736B0A00000000633A5C77735C626F64
-5F3437373631333638375F3537323934305C637573746F
+5F3437373631333932385F3537363035325C637573746F
 6D6572735C676F6F676C655C503231466C61677461696C
 6D63755C64656C69766572795C53656E736F724875625F
 5032315C7372635C6875625F636F6E74726F6C6C65722E
@@ -380,7 +380,7 @@
 46FEF768FF07E002464FF4D1630FF2BC618F2011F4D3F2
 FEF7DDFC04F5A6620A23C2E9000105F0F00006F00F0101
 433A462046BDE8F041FFF7E3BB0000633A5C77735C626F
-645F3437373631333638375F3537323934305C63757374
+645F3437373631333932385F3537363035325C63757374
 6F6D6572735C676F6F676C655C503231466C6167746169
 6C6D63755C64656C69766572795C53656E736F72487562
 5F5032315C7372635C636870705C7472616E73706F7274
@@ -517,7 +517,7 @@
 F610B010BD000025643A25640948232568687520756E6B
 6E6F776E20726571756573742E20636D643D2523782C20
 49443D256868750A00633A5C77735C626F645F34373736
-31333638375F3537323934305C637573746F6D6572735C
+31333932385F3537363035325C637573746F6D6572735C
 676F6F676C655C503231466C61677461696C6D63755C64
 656C69766572795C53656E736F724875625F5032315C73
 72635C636870705C6170702E630000000025643A256409
@@ -575,8 +575,8 @@
 4B00F1380100910FF2E801FFF71AD903B000BDF07E8A00
 0C53890028878A0039318000C531800025643A25640943
 4850502042617564726174652069732073657420746F20
-256C640A0A00633A5C77735C626F645F34373736313336
-38375F3537323934305C637573746F6D6572735C676F6F
+256C640A0A00633A5C77735C626F645F34373736313339
+32385F3537363035325C637573746F6D6572735C676F6F
 676C655C503231466C61677461696C6D63755C64656C69
 766572795C53656E736F724875625F5032315C7372635C
 73656E736F725F6875622E63000025643A256409496E76
@@ -670,12 +670,12 @@
 19D500F65C552846FDF762DE060012D000200090694628
 46FDF77EDE761E012804DB024600992046FEF7B2F82846
 FDF7DBDD002EECD173BD70470000633A5C77735C626F64
-5F3437373631333638375F3537323934305C637573746F
+5F3437373631333932385F3537363035325C637573746F
 6D6572735C676F6F676C655C503231466C61677461696C
 6D63755C64656C69766572795C53656E736F724875625F
 5032315C7372635C636870705C696E636C7564655C6368
 70702F7472616E73706F72742E6800633A5C77735C626F
-645F3437373631333638375F3537323934305C63757374
+645F3437373631333932385F3537363035325C63757374
 6F6D6572735C676F6F676C655C503231466C6167746169
 6C6D63755C64656C69766572795C53656E736F72487562
 5F5032315C7372635C636870705C706C6174666F726D5C
@@ -686,7 +686,7 @@
 C306327C012AF1D1D6E90223D0E918679F42E7D8E8D396
 42E4D2E5E7D0E91823CDE900230FF27C010FF2100240F2
 1E238F200FF41DF503B0F0BD0000633A5C77735C626F64
-5F3437373631333638375F3537323934305C637573746F
+5F3437373631333932385F3537363035325C637573746F
 6D6572735C676F6F676C655C503231466C61677461696C
 6D63755C64656C69766572795C53656E736F724875625F
 5032315C7372F19403903C8000635C636870705C636C69
@@ -696,8 +696,8 @@
 90009225238B200FF4C3F420680221FEF75FF80AE03246
 294625F48CF401207870324620683946FEF722F8012003
 B0F0BD25643A2564094F4F4D2061742025733A25640A00
-633A5C77735C626F645F3437373631333638375F353732
-3934305C637573746F6D6572735C676F6F676C655C5032
+633A5C77735C626F645F3437373631333932385F353736
+3035325C637573746F6D6572735C676F6F676C655C5032
 31466C61677461696C6D63755C64656C69766572795C53
 656E736F724875625F5032315C7372635C636870705C73
 657276696365735C6C6F6F706261636B2E63000010B514
@@ -709,7 +709,7 @@
 BDE870400E22FDF79DBF10B58B880124012B02D1FFF7C5
 FF00E00024204610BD000025643A2564094F4F4D206174
 2025733A25640A00633A5C77735C626F645F3437373631
-333638375F3537323934305C637573746F6D6572735C67
+333932385F3537363035325C637573746F6D6572735C67
 6F6F676C655C503231466C61677461696C6D63755C6465
 6C69766572795C53656E736F724875625F5032315C7372
 635C636870705C73657276696365735C74696D6573796E
@@ -723,8 +723,8 @@
 63F309F101092437207A8145F3D320682A46314603B0BD
 E8F043FDF7F2BE10B58A880124012A02D1FFF7BAFF00E0
 0024204610BD25643A2564094F4F4D2061742025733A25
-640A00633A5C77735C626F645F3437373631333638375F
-3537323934305C637573746F6D6572735C676F6F676C65
+640A00633A5C77735C626F645F3437373631333932385F
+3537363035325C637573746F6D6572735C676F6F676C65
 5C503231466C61677461696C6D63755C64656C69766572
 795C53656E736F724875625F5032315C7372635C636870
 705C73657276696365735C646973636F766572792E6300
@@ -751,7 +751,7 @@
 EB0905CDE90445AD230FF2AC118F200FF44AF206B0BDE8
 708370B50446084615461E46FFF7BEFF32462946206800
 68BDE87040FDF7A7BD00000000633A5C77735C626F645F
-3437373631333638375F3537323934305C637573746F6D
+3437373631333932385F3537363035325C637573746F6D
 6572735C676F6F676C655C503231466C61677461696C6D
 63755C64656C69766572795C53656E736F724875625F50
 32315C7372635C636870705C73657276696365732E6300
@@ -778,8 +778,8 @@
 903E230FF240020FF22C018E2007E001A8009042230FF2
 2C020FF218018F200FF40FF10DF5027D10BC5DF80CFB0F
 F284014160704725643A25640950414C3A2025730A0000
-633A5C77735C626F645F3437373631333638375F353732
-3934305C637573746F6D6572735C676F6F676C655C5032
+633A5C77735C626F645F3437373631333932385F353736
+3035325C637573746F6D6572735C676F6F676C655C5032
 31466C61677461696C6D63755C64656C69766572795C53
 656E736F724875625F5032315C7372635C636870705C70
 6C6174666F726D5C70616C5F6170692E63000000000000
@@ -838,7 +838,7 @@
 070032BD13460A4601460248007810F4DBB00000145389
 007146800081468000687B890060D09100514680004747
 8000436870704C696E6B5461736B00000000633A5C7773
-5C626F645F3437373631333638375F3537323934305C63
+5C626F645F3437373631333932385F3537363035325C63
 7573746F6D6572735C676F6F676C655C503231466C6167
 7461696C6D63755C64656C69766572795C53656E736F72
 4875625F5032315C7372635C636870705C706C6174666F
@@ -902,7 +902,7 @@
 29460FF268222046FFF770F8287131BD0000D088890025
 643A256409474E5353207365727669636520616C726561
 6479206F70656E0A00000000633A5C77735C626F645F34
-37373631333638375F3537323934305C637573746F6D65
+37373631333932385F3537363035325C637573746F6D65
 72735C676F6F676C655C503231466C61677461696C6D63
 755C64656C69766572795C53656E736F724875625F5032
 315C7372635C636870705C73657276696365735C676E73
@@ -952,8 +952,8 @@
 2003B0F0BD70B50D000446164606D10023002295210FF2
 3000FBF77DF936B90023002296210FF22000FBF775F936
 20FEF7B0F9286030B1811D2046FFF799FF362030600120
-70BD633A5C77735C626F645F3437373631333638375F35
-37323934305C637573746F6D6572735C676F6F676C655C
+70BD633A5C77735C626F645F3437373631333932385F35
+37363035325C637573746F6D6572735C676F6F676C655C
 503231466C61677461696C6D63755C64656C6976657279
 5C53656E736F724875625F5032315C7372635C63687070
 5C636F6D6D6F6E5C676E73735F636F6E766572742E6300
@@ -1007,8 +1007,8 @@
 65617344617461000025643A2564095B25735D204D6561
 737572656D656E742064617461206576656E74203A206D
 6561737572656D656E745F636F756E74203D2028256429
-0A000000633A5C77735C626F645F343737363133363837
-5F3537323934305C637573746F6D6572735C676F6FF194
+0A000000633A5C77735C626F645F343737363133393238
+5F3537363035325C637573746F6D6572735C676F6FF194
 0310598000676C655C503231466C61677461696C6D6375
 5C64656C69766572795C53656E736F724875625F503231
 5C7372635C636870705C706C6174666F726D5C62636D5C
@@ -1217,7 +1217,7 @@
 F008E0B08838B1A88070BD00291CBFF088002800D0A080
 70BD0B4801707047000009480078704700000848017070
 47000006480078704700000148416170470000787B8900
-0CBE080099CB91009ACB91002F2F6465706F742F636C69
+34CA080099CB91009ACB91002F2F6465706F742F636C69
 656E742F636F72652F72656C2F476F6F676C652F503232
 2F3535343830332F2E2E2E0000007E24247E5056542044
 756D70203A20474C4C207665722E20256C7520666C6167
diff --git a/gps/brcm/prebuilt/SensorHub_DebugBuild_A0.patch b/gps/brcm/prebuilt/SensorHub_DebugBuild_A0.patch
index 92b15bc..23b9999 100644
--- a/gps/brcm/prebuilt/SensorHub_DebugBuild_A0.patch
+++ b/gps/brcm/prebuilt/SensorHub_DebugBuild_A0.patch
@@ -1,9 +1,9 @@
 <FormatVersion=0x00010003>
 
-<Crc=222>
+<Crc=32>
 <BlobLength=161839>
 <AsicVersion=0x004776A0>
-<ChangeList=572940>
+<ChangeList=576052>
 <PatchLevel=0>
 <PostPatchLevel=1>
 <CustomerVersion=None>
@@ -79,7 +79,7 @@
 009102A101F438F703B000BD4170700080BD8900708989
 00805D8A006905800025643A2564095374617274206368
 70704170705461736B0A00000000633A5C77735C626F64
-5F3437373631333638375F3537323934305C637573746F
+5F3437373631333932385F3537363035325C637573746F
 6D6572735C676F6F676C655C503231466C61677461696C
 6D63755C64656C69766572795C53656E736F724875625F
 5032315C7372635C6875625F636F6E74726F6C6C65722E
@@ -390,7 +390,7 @@
 F22046FEF700FF07E002464FF4D1630FF2F4518F2011F4
 5FF2FEF769FC04F5A6620A23C2E9000105F0F00006F00F
 0101433A462046BDE8F041FFF7BDBB0000633A5C77735C
-626F645F3437373631333638375F3537323934305C6375
+626F645F3437373631333932385F3537363035325C6375
 73746F6D6572735C676F6F676C655C503231466C616774
 61696C6D63755C64656C69766572795C53656E736F7248
 75625F5032315C7372635C636870705C7472616E73706F
@@ -526,7 +526,7 @@
 25210378204626F4F1F510B010BD000025643A25640948
 232568687520756E6B6E6F776E20726571756573742E20
 636D643D2523782C2049443D256868750A00633A5C7773
-5C626F645F3437373631333638375F3537323934305C63
+5C626F645F3437373631333932385F3537363035325C63
 7573746F6D6572735C676F6F676C655C503231466C6167
 7461696C6D63755C64656C69766572795C53656E736F72
 4875625F5032315C7372F19403502E8000635C63687070
@@ -585,7 +585,7 @@
 D803B000BDF07E8A000C53890028878A00113280009D32
 800025643A256409434850502042617564726174652069
 732073657420746F20256C640A0A00633A5C77735C626F
-645F3437373631333638375F3537323934305C63757374
+645F3437373631333932385F3537363035325C63757374
 6F6D6572735C676F6F676C655C503231466C6167746169
 6C6D63755C64656C69766572795C53656E736F72487562
 5F5032315C7372635C73656E736F725F6875622E630000
@@ -679,13 +679,13 @@
 B5C90382B0A0F5A86419D500F65C552846FDF7F6DD0600
 12D00020009069462846FDF712DE761E012804DB024600
 992046FEF79EF82846FDF76FDD002EECD173BD70470000
-633A5C77735C626F645F3437373631333638375F353732
-3934305C637573746F6D6572735C676F6F676C655C5032
+633A5C77735C626F645F3437373631333932385F353736
+3035325C637573746F6D6572735C676F6F676C655C5032
 31466C61677461696C6D63755C64656C69766572795C53
 656E736F724875625F5032315C7372635C636870705C69
 6E636C7564655C636870702F7472616E73706F72742E68
-00633A5C77735C626F645F3437373631333638375F3537
-323934305C637573746F6D6572735C676F6F676C655C50
+00633A5C77735C626F645F3437373631333932385F3537
+363035325C637573746F6D6572735C676F6F676C655C50
 3231466C61677461696C6D63755C64656C69766572795C
 53656E736F724875625F5032315C7372635C636870705C
 706C6174666F726D5C62636D5C42434D343737785C6C69
@@ -696,7 +696,7 @@
 D1D6E90223D0E918679F42E7D8E8D39642E4D2E5E7D0E9
 1823CDE900230FF27C010FF2100240F21E238F200FF4B1
 F403B0F0BD0000633A5C77735C626F645F343737363133
-3638375F3537323934305C637573746F6D6572735C676F
+3932385F3537363035325C637573746F6D6572735C676F
 6F676C655C503231466C61677461696C6D63755C64656C
 69766572795C53656E736F724875625F5032315C737263
 5C636870705C636C69656E74732E630000000025643A25
@@ -706,7 +706,7 @@
 21FEF75DF80AE03246294625F420F40120787032462068
 3946FEF718F8012003B0F0BD25643A2564094F4F4D2061
 742025733A25640A00633A5C77735C626F645F34373736
-31333638375F3537323934305C637573746F6D6572735C
+31333932385F3537363035325C637573746F6D6572735C
 676F6F676C655C503231466C61677461696C6D63755C64
 656C69766572795C53656E736F724875625F5032315C73
 72635C636870705C73657276696365735C6C6F6F706261
@@ -718,8 +718,8 @@
 0122460E2000908F200FF2B0010FF4C3F32868314604B0
 BDE870400E22FDF78CBF10B58B880124012B02D1FFF7BE
 FF00E00024204610BD25643A2564094F4F4D2061742025
-733A25640A00633A5C77735C626F645F34373736313336
-38375F3537323934305C637573746F6D6572735C676F6F
+733A25640A00633A5C77735C626F645F34373736313339
+32385F3537363035325C637573746F6D6572735C676F6F
 676C655C503231466C61677461696C6D63755C64656C69
 766572795C53656E736F724875625F5032315C7372635C
 636870705C73657276696365735C74696D6573796E632E
@@ -734,7 +734,7 @@
 314603B0BDE8F043FDF7E2BE10B58A880124012A02D1FF
 F7BAFF00E00024204610BD25643A2564094F4F4D206174
 2025733A25640A00633A5C77735C626F645F3437373631
-333638375F3537323934305C637573746F6D6572735C67
+333932385F3537363035325C637573746F6D6572735C67
 6F6F676C655C503231466C61677461696C6D63755C6465
 6C69766572795C53656E736F724875625F5032315C7372
 635C636870705C73657276696365735C646973636F7665
@@ -761,7 +761,7 @@
 05CDE90445AD230FF2AC118F200FF4D8F106B0BDE87083
 70B50446084615461E46FFF7BEFF3246294620680068BD
 E87040FDF797BD00000000633A5C77735C626F645F3437
-373631333638375F3537323934305C637573746F6D6572
+373631333932385F3537363035325C637573746F6D6572
 735C676F6F676C655C503231466C61677461696C6D6375
 5C64656C69766572795C53656E736F724875625F503231
 5C7372635C636870705C73657276696365732E63000000
@@ -788,8 +788,8 @@
 230FF240020FF22C018E2007E001A8009042230FF22C02
 0FF218018F200FF49DF00DF5027D10BC5DF80CFB0FF284
 014160704725643A25640950414C3A2025730A0000633A
-5C77735C626F645F3437373631333638375F3537323934
-305C637573746F6D6572735C676F6F676C655C50323146
+5C77735C626F645F3437373631333932385F3537363035
+325C637573746F6D6572735C676F6F676C655C50323146
 6C61677461696C6D63755C64656C69766572795C53656E
 736F724875625F5032315C7372635C636870705C706C61
 74666F726D5C70616C5F6170692E6300000000000001C9
@@ -848,7 +848,7 @@
 32BD13460A4601460248007810F469B000001453890055
 47800065478000687B890060D09100354780002B488000
 436870704C696E6B5461736B00000000633A5C77735C62
-6F645F3437373631333638375F3537323934305C637573
+6F645F3437373631333932385F3537363035325C637573
 746FF19403D04A80006D6572735C676F6F676C655C5032
 31466C61677461696C6D63755C64656C69766572795C53
 656E736F724875625F5032315C7372635C636870705C70
@@ -914,7 +914,7 @@
 0023002240F293210FF2380001B0BDE83040FBF732BB31
 BD0000D088890025643A256409474E5353207365727669
 636520616C7265616479206F70656E0A00000000633A5C
-77735C626F645F3437373631333638375F353732393430
+77735C626F645F3437373631333932385F353736303532
 5C637573746F6D6572735C676F6F676C655C503231466C
 61677461696C6D63755C64656C69766572795C53656E73
 6F724875625F5032315C7372635C636870705C73657276
@@ -965,7 +965,7 @@
 0023002295210FF23000FBF7EFF836B90023002296210F
 F22000FBF7E7F83620FEF78EF9286030B1811D2046FFF7
 99FF36203060012070BD633A5C77735C626F645F343737
-3631333638375F3537323934305C637573746F6D657273
+3631333932385F3537363035325C637573746F6D657273
 5C676F6F676C655C503231466C61677461696C6D63755C
 64656C69766572795C53656E736F724875625F5032315C
 7372635C636870705C636F6D6D6F6E5C676E73735F63F1
@@ -1020,7 +1020,7 @@
 0025643A2564095B25735D204D6561737572656D656E74
 2064617461206576656E74203A206D6561737572656D65
 6E745F636F756E74203D20282564290A000000633A5C77
-735C626F645F3437373631333638375F3537323934305C
+735C626F645F3437373631333932385F3537363035325C
 637573746F6D6572735C676F6F676C655C503231466C61
 677461696C6D63755C64656C69766572795C53656E736F
 724875625F5032315C7372635C636870705C706C617466
@@ -1229,7 +1229,7 @@
 8891FBF0F111FB00F008E0B08838B1A88070BD00291CBF
 F088002800D0A08070BD0B480170704700000948007870
 4700000848017070470000064800787047000001484161
-70470000787B89000CBE080099CB91009ACB91002F2F64
+70470000787B890034CA080099CB91009ACB91002F2F64
 65706F742F636C69656E742F636F72652F72656C2F476F
 6F676C652F5032322F3535343830332F2E2E2E0000007E
 24247E5056542044756D70203A20474C4C207665722E20
diff --git a/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm
index 46c3502..06d6a25 100755
--- a/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm
+++ b/gps/brcm/prebuilt/android.hardware.gnss@2.1-service-brcm
Binary files differ
diff --git a/gps/brcm/prebuilt/flp.default.so b/gps/brcm/prebuilt/flp.default.so
index ae82480..d8ae3e5 100755
--- a/gps/brcm/prebuilt/flp.default.so
+++ b/gps/brcm/prebuilt/flp.default.so
Binary files differ
diff --git a/gps/brcm/prebuilt/gps.default.so b/gps/brcm/prebuilt/gps.default.so
index 616d840..785a603 100755
--- a/gps/brcm/prebuilt/gps.default.so
+++ b/gps/brcm/prebuilt/gps.default.so
Binary files differ
diff --git a/gps/brcm/prebuilt/gpsd b/gps/brcm/prebuilt/gpsd
index 8a7f911..bfe3a6c 100755
--- a/gps/brcm/prebuilt/gpsd
+++ b/gps/brcm/prebuilt/gpsd
Binary files differ
diff --git a/gps/brcm/prebuilt/lhd b/gps/brcm/prebuilt/lhd
index 258bf23..786f914 100755
--- a/gps/brcm/prebuilt/lhd
+++ b/gps/brcm/prebuilt/lhd
Binary files differ
diff --git a/gps/brcm/prebuilt/scd b/gps/brcm/prebuilt/scd
index cccca1f..a96c13b 100755
--- a/gps/brcm/prebuilt/scd
+++ b/gps/brcm/prebuilt/scd
Binary files differ
diff --git a/mte/fullmte-pixel.mk b/mte/fullmte-pixel.mk
new file mode 100644
index 0000000..96120fb
--- /dev/null
+++ b/mte/fullmte-pixel.mk
@@ -0,0 +1,2 @@
+include build/make/target/product/fullmte.mk
+BOARD_KERNEL_CMDLINE += bootloader.pixel.MTE_FORCE_ON
diff --git a/thermal/dump_thermal.sh b/thermal/dump_thermal.sh
index 2b87da9..288d34d 100644
--- a/thermal/dump_thermal.sh
+++ b/thermal/dump_thermal.sh
@@ -1,46 +1,46 @@
 #!/vendor/bin/sh
 
-echo "Temperatures"
+echo 'Temperatures'
 for f in /sys/class/thermal/thermal* ; do
-  printf "%s: %s\n" `cat $f/type` `cat $f/temp`
+  echo `cat $f/type`: `cat $f/temp`
 done
 
-echo "Cooling Device Current State"
+echo 'Cooling Device Current State'
 for f in /sys/class/thermal/cooling* ; do
-  printf "%s: %s\n" `cat $f/type` `cat $f/cur_state`
+  echo `cat $f/type`: `cat $f/cur_state`
 done
 
-echo "Cooling Device User Vote State"
+echo 'Cooling Device User Vote State'
 for f in /sys/class/thermal/cooling* ; do
-  if [ ! -f $f/user_vote ]; then continue; fi;
-  printf "%s: %s\n" `cat $f/type` `cat $f/user_vote`
+  if ! [ -r $f/user_vote ]; then continue; fi;
+  echo `cat $f/type`: `cat $f/user_vote`
 done
 
-echo "Cooling Device Time in State"
+echo 'Cooling Device Time in State'
 for f in /sys/class/thermal/cooling* ; do
-  printf "%s: %s\n" `cat $f/type` `cat $f/stats/time_in_state_ms`
+  echo `cat $f/type`: `cat $f/stats/time_in_state_ms`
 done
 
-echo "Cooling Device Trans Table"
+echo 'Cooling Device Trans Table'
 for f in /sys/class/thermal/cooling* ; do
-  printf "%s: %s\n" `cat $f/type` `cat $f/stats/trans_table`
+  echo `cat $f/type`: `cat $f/stats/trans_table`
 done
 
-echo "Cooling Device State2Power Table"
+echo 'Cooling Device State2Power Table'
 for f in /sys/class/thermal/cooling* ; do
-  if [ ! -f $f/state2power_table ]; then continue; fi;
-  printf "%s: %s\n" `cat $f/type` `cat $f/state2power_table`
+  if ! [ -r $f/state2power_table ]; then continue; fi;
+  echo `cat $f/type`: `cat $f/state2power_table`
 done
 
-echo "TMU state:"
+echo 'TMU state:'
 cat /sys/module/gs_thermal/parameters/tmu_reg_dump_state
-echo "TMU current temperature:"
+echo 'TMU current temperature:'
 cat /sys/module/gs_thermal/parameters/tmu_reg_dump_current_temp
-echo "TMU_TOP rise thresholds:"
+echo 'TMU_TOP rise thresholds:'
 cat /sys/module/gs_thermal/parameters/tmu_top_reg_dump_rise_thres
-echo "TMU_TOP fall thresholds:"
+echo 'TMU_TOP fall thresholds:'
 cat /sys/module/gs_thermal/parameters/tmu_top_reg_dump_fall_thres
-echo "TMU_SUB rise thresholds:"
+echo 'TMU_SUB rise thresholds:'
 cat /sys/module/gs_thermal/parameters/tmu_sub_reg_dump_rise_thres
-echo "TMU_SUB fall thresholds:"
+echo 'TMU_SUB fall thresholds:'
 cat /sys/module/gs_thermal/parameters/tmu_sub_reg_dump_fall_thres
diff --git a/touch/syna/dump_syna.sh b/touch/syna/dump_syna.sh
index d30ff36..d749eff 100644
--- a/touch/syna/dump_syna.sh
+++ b/touch/syna/dump_syna.sh
@@ -1,5 +1,5 @@
 #!/vendor/bin/sh
-path="/sys/devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs"
+path=`getprop ro.vendor.touch.dump.sys`
 
 echo "Enable Force Touch Active"
 echo 21 > $path/force_active
diff --git a/touch/syna/sepolicy/dump_syna.te b/touch/syna/sepolicy/dump_syna.te
index 38655e7..fb9705c 100644
--- a/touch/syna/sepolicy/dump_syna.te
+++ b/touch/syna/sepolicy/dump_syna.te
@@ -3,3 +3,6 @@
 allow dump_syna sysfs_touch:dir r_dir_perms;
 allow dump_syna sysfs_touch:file rw_file_perms;
 allow dump_syna vendor_toolbox_exec:file execute_no_trans;
+
+get_prop(dump_syna, vendor_touch_dump_path_prop)
+
diff --git a/touch/syna/sepolicy/genfs_contexts b/touch/syna/sepolicy/genfs_contexts
index de55bf3..2a8f9e3 100644
--- a/touch/syna/sepolicy/genfs_contexts
+++ b/touch/syna/sepolicy/genfs_contexts
@@ -1,2 +1,3 @@
 genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs   u:object_r:sysfs_touch:s0
+genfscon sysfs /devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs   u:object_r:sysfs_touch:s0
 
diff --git a/touch/syna/sepolicy/property.te b/touch/syna/sepolicy/property.te
new file mode 100644
index 0000000..5484690
--- /dev/null
+++ b/touch/syna/sepolicy/property.te
@@ -0,0 +1 @@
+vendor_internal_prop(vendor_touch_dump_path_prop)
diff --git a/touch/syna/sepolicy/property_contexts b/touch/syna/sepolicy/property_contexts
new file mode 100644
index 0000000..524cc8b
--- /dev/null
+++ b/touch/syna/sepolicy/property_contexts
@@ -0,0 +1 @@
+ro.vendor.touch.dump. u:object_r:vendor_touch_dump_path_prop:s0
diff --git a/touch/syna/sepolicy/vendor_init.te b/touch/syna/sepolicy/vendor_init.te
new file mode 100644
index 0000000..74a6666
--- /dev/null
+++ b/touch/syna/sepolicy/vendor_init.te
@@ -0,0 +1 @@
+set_prop(vendor_init, vendor_touch_dump_path_prop)
diff --git a/touch/syna/syna.mk b/touch/syna/syna.mk
deleted file mode 100644
index 7f137a0..0000000
--- a/touch/syna/syna.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy
-
-PRODUCT_PACKAGES += dump_syna.sh
diff --git a/touch/syna/syna0.mk b/touch/syna/syna0.mk
new file mode 100644
index 0000000..fe2b0c5
--- /dev/null
+++ b/touch/syna/syna0.mk
@@ -0,0 +1,5 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy
+
+PRODUCT_PACKAGES += dump_syna.sh
diff --git a/touch/syna/syna20.mk b/touch/syna/syna20.mk
new file mode 100644
index 0000000..600f1ff
--- /dev/null
+++ b/touch/syna/syna20.mk
@@ -0,0 +1,5 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/sepolicy
+
+PRODUCT_PACKAGES += dump_syna.sh