diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index f39a3299..cf851dd9 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -89,6 +89,9 @@ ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false)
AB_OTA_PARTITIONS += vendor_boot
AB_OTA_PARTITIONS += dtbo
endif
+ifeq ($(PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE),true)
+AB_OTA_PARTITIONS += vendor_kernel_boot
+endif
ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
AB_OTA_PARTITIONS += vbmeta
endif
@@ -351,9 +354,6 @@ BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
BOARD_INIT_BOOT_HEADER_VERSION := 4
BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION)
-BOARD_VENDOR_RAMDISK_FRAGMENTS := dlkm
-BOARD_VENDOR_RAMDISK_FRAGMENT.dlkm.KERNEL_MODULE_DIRS := top
-
# Enable AVB2.0
BOARD_AVB_ENABLE := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
@@ -361,6 +361,9 @@ BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 0x800000
BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x04000000
BOARD_DTBOIMG_PARTITION_SIZE := 0x01000000
+# Build vendor kernel boot image
+BOARD_VENDOR_KERNEL_BOOTIMAGE_PARTITION_SIZE := 0x04000000
+
# System As Root
BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
@@ -372,11 +375,11 @@ KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_boot.modules.load))
-ifndef BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_boot.modules.load))
+ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD
$(error vendor_boot.modules.load not found or empty)
endif
-BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD)))
+BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD)))
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load))
ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
diff --git a/default-permissions.xml b/default-permissions.xml
index 3abb866b..db61438f 100644
--- a/default-permissions.xml
+++ b/default-permissions.xml
@@ -41,6 +41,12 @@
-->
+
+
+
+
+
diff --git a/device.mk b/device.mk
index be410826..ab15dad2 100644
--- a/device.mk
+++ b/device.mk
@@ -802,11 +802,11 @@ PRODUCT_COPY_FILES += \
# System props to enable Bluetooth Quality Report (BQR) feature
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += \
- persist.bluetooth.bqr.event_mask=262174 \
+ persist.bluetooth.bqr.event_mask?=262174 \
persist.bluetooth.bqr.min_interval_ms=500
else
PRODUCT_PRODUCT_PROPERTIES += \
- persist.bluetooth.bqr.event_mask=30 \
+ persist.bluetooth.bqr.event_mask?=30 \
persist.bluetooth.bqr.min_interval_ms=500
endif
@@ -1074,6 +1074,9 @@ PRODUCT_PACKAGES += \
$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
PRODUCT_BUILD_PVMFW_IMAGE := true
+# Enable to build standalone vendor_kernel_boot image.
+PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
+
# Enable watchdog timeout loop breaker.
PRODUCT_PROPERTY_OVERRIDES += \
framework_watchdog.fatal_window.second=600 \
diff --git a/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so b/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so
index 722995d5..565d467f 100755
Binary files a/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so and b/gnss/47765/bin/android.hardware.gnss@2.1-impl-google.so differ
diff --git a/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm b/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm
index 5c821400..87dd16e1 100755
Binary files a/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm and b/gnss/47765/bin/android.hardware.gnss@2.1-service-brcm differ
diff --git a/gnss/47765/bin/flp.default.so b/gnss/47765/bin/flp.default.so
index 684fd210..d3e0d3e4 100755
Binary files a/gnss/47765/bin/flp.default.so and b/gnss/47765/bin/flp.default.so differ
diff --git a/gnss/47765/bin/gps.default.so b/gnss/47765/bin/gps.default.so
index 67eda7a5..66efb36f 100755
Binary files a/gnss/47765/bin/gps.default.so and b/gnss/47765/bin/gps.default.so differ
diff --git a/gnss/47765/bin/gpsd b/gnss/47765/bin/gpsd
index 7cb22a4d..cbade95d 100755
Binary files a/gnss/47765/bin/gpsd and b/gnss/47765/bin/gpsd differ
diff --git a/gnss/47765/bin/lhd b/gnss/47765/bin/lhd
index 6d59cba3..3ad54073 100755
Binary files a/gnss/47765/bin/lhd and b/gnss/47765/bin/lhd differ
diff --git a/gnss/47765/bin/scd b/gnss/47765/bin/scd
index bcd484d5..e7e56197 100755
Binary files a/gnss/47765/bin/scd and b/gnss/47765/bin/scd differ
diff --git a/gnss/47765/firmware/SensorHub.patch b/gnss/47765/firmware/SensorHub.patch
index 7a5d41ab..6617416c 100644
--- a/gnss/47765/firmware/SensorHub.patch
+++ b/gnss/47765/firmware/SensorHub.patch
@@ -1,9 +1,9 @@
-
+
-
+
@@ -79,7 +79,7 @@ F087FE022102914FF4005101915B220748084B00F13801
009102A101F438F703B000BD4170700080BD8900708989
00805D8A006905800025643A2564095374617274206368
70704170705461736B0A00000000633A5C77735C626F64
-5F3437373631303037375F3533343739395C637573746F
+5F3437373631303336385F3533373937365C637573746F
6D6572735C676F6F676C655C503231466C61677461696C
6D63755C64656C69766572795C53656E736F724875625F
5032315C7372635C6875625F636F6E74726F6C6C65722E
@@ -390,7 +390,7 @@ D00FF298080FF2206140F271673B4642468B2011F48EF2
F22046FEF700FF07E002464FF4D1630FF2F4518F2011F4
5FF2FEF769FC04F5A6620A23C2E9000105F0F00006F00F
0101433A462046BDE8F041FFF7BDBB0000633A5C77735C
-626F645F3437373631303037375F3533343739395C6375
+626F645F3437373631303336385F3533373937365C6375
73746F6D6572735C676F6F676C655C503231466C616774
61696C6D63755C64656C69766572795C53656E736F7248
75625F5032315C7372635C636870705C7472616E73706F
@@ -526,7 +526,7 @@ B590B00C46C17B0FF248420E91817B0D91417B0C91017B
25210378204626F4F1F510B010BD000025643A25640948
232568687520756E6B6E6F776E20726571756573742E20
636D643D2523782C2049443D256868750A00633A5C7773
-5C626F645F3437373631303037375F3533343739395C63
+5C626F645F3437373631303336385F3533373937365C63
7573746F6D6572735C676F6F676C655C503231466C6167
7461696C6D63755C64656C69766572795C53656E736F72
4875625F5032315C7372F19403502E8000635C63687070
@@ -585,7 +585,7 @@ F752DEC007F9D5FFF7CBFFF6E700B583B0022102914FF4
D803B000BDF07E8A000C53890028878A00113280009D32
800025643A256409434850502042617564726174652069
732073657420746F20256C640A0A00633A5C77735C626F
-645F3437373631303037375F3533343739395C63757374
+645F3437373631303336385F3533373937365C63757374
6F6D6572735C676F6F676C655C503231466C6167746169
6C6D63755C64656C69766572795C53656E736F72487562
5F5032315C7372635C73656E736F725F6875622E630000
@@ -679,13 +679,13 @@ E08619AE4210D22946204600F067FF0028F6D510F1040F
B5C90382B0A0F5A86419D500F65C552846FDF7F6DD0600
12D00020009069462846FDF712DE761E012804DB024600
992046FEF79EF82846FDF76FDD002EECD173BD70470000
-633A5C77735C626F645F3437373631303037375F353334
-3739395C637573746F6D6572735C676F6F676C655C5032
+633A5C77735C626F645F3437373631303336385F353337
+3937365C637573746F6D6572735C676F6F676C655C5032
31466C61677461696C6D63755C64656C69766572795C53
656E736F724875625F5032315C7372635C636870705C69
6E636C7564655C636870702F7472616E73706F72742E68
-00633A5C77735C626F645F3437373631303037375F3533
-343739395C637573746F6D6572735C676F6F676C655C50
+00633A5C77735C626F645F3437373631303336385F3533
+373937365C637573746F6D6572735C676F6F676C655C50
3231466C61677461696C6D63755C64656C69766572795C
53656E736F724875625F5032315C7372635C636870705C
706C6174666F726D5C62636D5C42434D343737785C6C69
@@ -696,7 +696,7 @@ B5C90382B0A0F5A86419D500F65C552846FDF7F6DD0600
D1D6E90223D0E918679F42E7D8E8D39642E4D2E5E7D0E9
1823CDE900230FF27C010FF2100240F21E238F200FF4B1
F403B0F0BD0000633A5C77735C626F645F343737363130
-3037375F3533343739395C637573746F6D6572735C676F
+3336385F3533373937365C637573746F6D6572735C676F
6F676C655C503231466C61677461696C6D63755C64656C
69766572795C53656E736F724875625F5032315C737263
5C636870705C636C69656E74732E630000000025643A25
@@ -706,7 +706,7 @@ F403B0F0BD0000633A5C77735C626F645F343737363130
21FEF75DF80AE03246294625F420F40120787032462068
3946FEF718F8012003B0F0BD25643A2564094F4F4D2061
742025733A25640A00633A5C77735C626F645F34373736
-31303037375F3533343739395C637573746F6D6572735C
+31303336385F3533373937365C637573746F6D6572735C
676F6F676C655C503231466C61677461696C6D63755C64
656C69766572795C53656E736F724875625F5032315C73
72635C636870705C73657276696365735C6C6F6F706261
@@ -718,8 +718,8 @@ D4FFC6F80600C6F80A103923D6F80600D6F80A10CDE902
0122460E2000908F200FF2B0010FF4C3F32868314604B0
BDE870400E22FDF78CBF10B58B880124012B02D1FFF7BE
FF00E00024204610BD25643A2564094F4F4D2061742025
-733A25640A00633A5C77735C626F645F34373736313030
-37375F3533343739395C637573746F6D6572735C676F6F
+733A25640A00633A5C77735C626F645F34373736313033
+36385F3533373937365C637573746F6D6572735C676F6F
676C655C503231466C61677461696C6D63755C64656C69
766572795C53656E736F724875625F5032315C7372635C
636870705C73657276696365735C74696D6573796E632E
@@ -734,7 +734,7 @@ D13B2001903B230FF280040FF26801009422468B200FF4
314603B0BDE8F043FDF7E2BE10B58A880124012A02D1FF
F7BAFF00E00024204610BD25643A2564094F4F4D206174
2025733A25640A00633A5C77735C626F645F3437373631
-303037375F3533343739395C637573746F6D6572735C67
+303336385F3533373937365C637573746F6D6572735C67
6F6F676C655C503231466C61677461696C6D63755C6465
6C69766572795C53656E736F724875625F5032315C7372
635C636870705C73657276696365735C646973636F7665
@@ -761,7 +761,7 @@ D0CDE9000197230FF2B8020FF2B0118B200FF41BF2FFF7
05CDE90445AD230FF2AC118F200FF4D8F106B0BDE87083
70B50446084615461E46FFF7BEFF3246294620680068BD
E87040FDF797BD00000000633A5C77735C626F645F3437
-373631303037375F3533343739395C637573746F6D6572
+373631303336385F3533373937365C637573746F6D6572
735C676F6F676C655C503231466C61677461696C6D6375
5C64656C69766572795C53656E736F724875625F503231
5C7372635C636870705C73657276696365732E63000000
@@ -788,8 +788,8 @@ D009D31AE001A8009038230FF264020FF250018B2019E0
230FF240020FF22C018E2007E001A8009042230FF22C02
0FF218018F200FF49DF00DF5027D10BC5DF80CFB0FF284
014160704725643A25640950414C3A2025730A0000633A
-5C77735C626F645F3437373631303037375F3533343739
-395C637573746F6D6572735C676F6F676C655C50323146
+5C77735C626F645F3437373631303336385F3533373937
+365C637573746F6D6572735C676F6F676C655C50323146
6C61677461696C6D63755C64656C69766572795C53656E
736F724875625F5032315C7372635C636870705C706C61
74666F726D5C70616C5F6170692E6300000000000001C9
@@ -848,7 +848,7 @@ F7A8FE6089FFF793FE42F654000059FFF7A0FE02200290
32BD13460A4601460248007810F469B000001453890055
47800065478000687B890060D09100354780002B488000
436870704C696E6B5461736B00000000633A5C77735C62
-6F645F3437373631303037375F3533343739395C637573
+6F645F3437373631303336385F3533373937365C637573
746FF19403D04A80006D6572735C676F6F676C655C5032
31466C61677461696C6D63755C64656C69766572795C53
656E736F724875625F5032315C7372635C636870705C70
@@ -914,7 +914,7 @@ BD38B504464FF0827000F0B5FC144DA86078B90FF27004
0023002240F293210FF2380001B0BDE83040FBF732BB31
BD0000D088890025643A256409474E5353207365727669
636520616C7265616479206F70656E0A00000000633A5C
-77735C626F645F3437373631303037375F353334373939
+77735C626F645F3437373631303336385F353337393736
5C637573746F6D6572735C676F6F676C655C503231466C
61677461696C6D63755C64656C69766572795C53656E73
6F724875625F5032315C7372635C636870705C73657276
@@ -965,7 +965,7 @@ B6F9286060B13421ADF80410821D01A900913B46811D20
0023002295210FF23000FBF7EFF836B90023002296210F
F22000FBF7E7F83620FEF78EF9286030B1811D2046FFF7
99FF36203060012070BD633A5C77735C626F645F343737
-3631303037375F3533343739395C637573746F6D657273
+3631303336385F3533373937365C637573746F6D657273
5C676F6F676C655C503231466C61677461696C6D63755C
64656C69766572795C53656E736F724875625F5032315C
7372635C636870705C636F6D6D6F6E5C676E73735F63F1
@@ -1020,7 +1020,7 @@ B02016BD6272636D476E73734F6E4D6561734461746100
0025643A2564095B25735D204D6561737572656D656E74
2064617461206576656E74203A206D6561737572656D65
6E745F636F756E74203D20282564290A000000633A5C77
-735C626F645F3437373631303037375F3533343739395C
+735C626F645F3437373631303336385F3533373937365C
637573746F6D6572735C676F6F676C655C503231466C61
677461696C6D63755C64656C69766572795C53656E736F
724875625F5032315C7372635C636870705C706C617466
@@ -1229,9 +1229,9 @@ A288F2804343226C9A4214D291FBF0F111FB00F1A980F1
8891FBF0F111FB00F008E0B08838B1A88070BD00291CBF
F088002800D0A08070BD0B480170704700000948007870
4700000848017070470000064800787047000001484161
-70470000787B89000F29080099CB91009ACB91002F2F64
+70470000787B89007835080099CB91009ACB91002F2F64
65706F742F636C69656E742F636F72652F72656C2F476F
-6F676C652F5032322F3533343635332F2E2E2E0000007E
+6F676C652F5032322F3533373538382F2E2E2E0000007E
24247E5056542044756D70203A20474C4C207665722E20
256C7520666C61677461696C3A25730A000000007E2424
7E5056542044756D70203A2054203D20256C752C204E54
diff --git a/media_codecs_aosp_c2.xml b/media_codecs_aosp_c2.xml
index c2eed11f..55521d78 100644
--- a/media_codecs_aosp_c2.xml
+++ b/media_codecs_aosp_c2.xml
@@ -26,7 +26,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
@@ -55,7 +55,7 @@
-
+
@@ -69,7 +69,7 @@
-
+
@@ -111,7 +111,7 @@
-
+
@@ -125,7 +125,7 @@
-
+
@@ -139,7 +139,7 @@
-
+
@@ -157,7 +157,7 @@
-
+
@@ -172,7 +172,7 @@
-
+
@@ -217,7 +217,7 @@
-
+
@@ -232,7 +232,7 @@
-
+
diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml
index a198a5ae..ad4ad7df 100644
--- a/media_codecs_bo_c2.xml
+++ b/media_codecs_bo_c2.xml
@@ -25,7 +25,7 @@
-
+
@@ -38,7 +38,7 @@
-
+
diff --git a/usb/usb/Usb.cpp b/usb/usb/Usb.cpp
index 31dd1b71..82f6e184 100644
--- a/usb/usb/Usb.cpp
+++ b/usb/usb/Usb.cpp
@@ -83,23 +83,39 @@ ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable,
int64_t in_transactionId) {
bool result = true;
std::vector currentPortStatus;
+ string pullup;
ALOGI("Userspace turn %s USB data signaling. opID:%ld", in_enable ? "on" : "off",
in_transactionId);
if (in_enable) {
if (!mUsbDataEnabled) {
+ if (ReadFileToString(PULLUP_PATH, &pullup)) {
+ pullup = Trim(pullup);
+ if (pullup != kGadgetName) {
+ if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) {
+ ALOGE("Gadget cannot be pulled up");
+ result = false;
+ }
+ }
+ }
+
if (!WriteStringToFile("1", USB_DATA_PATH)) {
ALOGE("Not able to turn on usb connection notification");
result = false;
}
-
- if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) {
- ALOGE("Gadget cannot be pulled up");
- result = false;
- }
}
} else {
+ if (ReadFileToString(PULLUP_PATH, &pullup)) {
+ pullup = Trim(pullup);
+ if (pullup == kGadgetName) {
+ if (!WriteStringToFile("none", PULLUP_PATH)) {
+ ALOGE("Gadget cannot be pulled down");
+ result = false;
+ }
+ }
+ }
+
if (!WriteStringToFile("1", ID_PATH)) {
ALOGE("Not able to turn off host mode");
result = false;
@@ -114,11 +130,6 @@ ScopedAStatus Usb::enableUsbData(const string& in_portName, bool in_enable,
ALOGE("Not able to turn on usb connection notification");
result = false;
}
-
- if (!WriteStringToFile("none", PULLUP_PATH)) {
- ALOGE("Gadget cannot be pulled down");
- result = false;
- }
}
if (result) {