diff --git a/pcie/Android.bp b/pcie/Android.bp
new file mode 100644
index 0000000..ae6a94e
--- /dev/null
+++ b/pcie/Android.bp
@@ -0,0 +1,10 @@
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+sh_binary {
+ name: "dump_pcie.sh",
+ src: "dump_pcie.sh",
+ vendor: true,
+ sub_dir: "dump",
+}
diff --git a/pcie/dump_pcie.sh b/pcie/dump_pcie.sh
new file mode 100644
index 0000000..0d543d6
--- /dev/null
+++ b/pcie/dump_pcie.sh
@@ -0,0 +1,5 @@
+#!/vendor/bin/sh
+echo "--- pcie0 dump ---"
+cat /dev/logbuffer_pcie0
+echo "--- pcie1 dump ---"
+cat /dev/logbuffer_pcie1
diff --git a/pcie/pcie.mk b/pcie/pcie.mk
new file mode 100644
index 0000000..f9ab327
--- /dev/null
+++ b/pcie/pcie.mk
@@ -0,0 +1,2 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/pcie/sepolicy
+PRODUCT_PACKAGES += dump_pcie.sh
diff --git a/pcie/sepolicy/device.te b/pcie/sepolicy/device.te
new file mode 100644
index 0000000..8a471b0
--- /dev/null
+++ b/pcie/sepolicy/device.te
@@ -0,0 +1 @@
+type pcie_log_device, dev_type;
diff --git a/pcie/sepolicy/dump_pcie.te b/pcie/sepolicy/dump_pcie.te
new file mode 100644
index 0000000..6d490bc
--- /dev/null
+++ b/pcie/sepolicy/dump_pcie.te
@@ -0,0 +1,4 @@
+pixel_bugreport(dump_pcie)
+
+allow dump_pcie pcie_log_device:chr_file r_file_perms;
+allow dump_pcie vendor_toolbox_exec:file execute_no_trans;
diff --git a/pcie/sepolicy/file_contexts b/pcie/sepolicy/file_contexts
new file mode 100644
index 0000000..e06f754
--- /dev/null
+++ b/pcie/sepolicy/file_contexts
@@ -0,0 +1,4 @@
+/vendor/bin/dump/dump_pcie\.sh u:object_r:dump_pcie_exec:s0
+
+/dev/logbuffer_pcie0 u:object_r:pcie_log_device:s0
+/dev/logbuffer_pcie1 u:object_r:pcie_log_device:s0
diff --git a/pixel_ril/compatibility_matrix.xml b/pixel_ril/compatibility_matrix.xml
new file mode 100644
index 0000000..b3539f6
--- /dev/null
+++ b/pixel_ril/compatibility_matrix.xml
@@ -0,0 +1,11 @@
+
+
+ vendor.google.ril_ext
+ 1
+
+ IRilExt
+ slot1
+ slot2
+
+
+
diff --git a/pixel_ril/manifest_ril.xml b/pixel_ril/manifest_ril.xml
new file mode 100644
index 0000000..ca11929
--- /dev/null
+++ b/pixel_ril/manifest_ril.xml
@@ -0,0 +1,6 @@
+
+
+ vendor.google.ril_ext
+ IRilExt/slot1
+
+
diff --git a/pixel_ril/manifest_ril_ds.xml b/pixel_ril/manifest_ril_ds.xml
new file mode 100644
index 0000000..15af796
--- /dev/null
+++ b/pixel_ril/manifest_ril_ds.xml
@@ -0,0 +1,7 @@
+
+
+ vendor.google.ril_ext
+ IRilExt/slot1
+ IRilExt/slot2
+
+
diff --git a/pixel_ril/ril.mk b/pixel_ril/ril.mk
new file mode 100644
index 0000000..03f7f24
--- /dev/null
+++ b/pixel_ril/ril.mk
@@ -0,0 +1,14 @@
+BOARD_SEPOLICY_DIRS += device/google/gs-common/pixel_ril/sepolicy
+
+ifeq ($(SIM_COUNT), 2)
+ DEVICE_MANIFEST_FILE += device/google/gs-common/pixel_ril/manifest_ril_ds.xml
+else
+ DEVICE_MANIFEST_FILE += device/google/gs-common/pixel_ril/manifest_ril.xml
+endif
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/pixel_ril/compatibility_matrix.xml
+
+PRODUCT_PACKAGES += ril-extension
+
+PRODUCT_SOONG_NAMESPACES += vendor/google/tools/ril-extension-service
+
+USE_GOOGLE_RIL_EXT := true
diff --git a/pixel_ril/sepolicy/rild.te b/pixel_ril/sepolicy/rild.te
new file mode 100644
index 0000000..3bb2cd7
--- /dev/null
+++ b/pixel_ril/sepolicy/rild.te
@@ -0,0 +1,2 @@
+add_service(rild, hal_ril_ext_service)
+binder_call(rild, rilextensionservice_app)
diff --git a/pixel_ril/sepolicy/rilextensionservice_app.te b/pixel_ril/sepolicy/rilextensionservice_app.te
new file mode 100644
index 0000000..d315367
--- /dev/null
+++ b/pixel_ril/sepolicy/rilextensionservice_app.te
@@ -0,0 +1,11 @@
+type rilextensionservice_app, domain;
+app_domain(rilextensionservice_app)
+
+allow rilextensionservice_app app_api_service:service_manager find;
+allow rilextensionservice_app hal_ril_ext_service:service_manager find;
+allow rilextensionservice_app radio_service:service_manager find;
+
+binder_call(rilextensionservice_app, rild)
+
+set_prop(rilextensionservice_app, vendor_rild_prop)
+set_prop(rilextensionservice_app, radio_prop)
diff --git a/pixel_ril/sepolicy/seapp_contexts b/pixel_ril/sepolicy/seapp_contexts
new file mode 100644
index 0000000..295f5c9
--- /dev/null
+++ b/pixel_ril/sepolicy/seapp_contexts
@@ -0,0 +1,2 @@
+# RIL extension service
+user=_app isPrivApp=true name=com.google.android.rilextension domain=rilextensionservice_app levelFrom=all
diff --git a/pixel_ril/sepolicy/service.te b/pixel_ril/sepolicy/service.te
new file mode 100644
index 0000000..1908206
--- /dev/null
+++ b/pixel_ril/sepolicy/service.te
@@ -0,0 +1 @@
+type hal_ril_ext_service, hal_service_type, service_manager_type;
diff --git a/pixel_ril/sepolicy/service_contexts b/pixel_ril/sepolicy/service_contexts
new file mode 100644
index 0000000..5f29162
--- /dev/null
+++ b/pixel_ril/sepolicy/service_contexts
@@ -0,0 +1,3 @@
+vendor.google.ril_ext.IRilExt/slot1 u:object_r:hal_ril_ext_service:s0
+vendor.google.ril_ext.IRilExt/slot2 u:object_r:hal_ril_ext_service:s0
+vendor.google.ril_ext.IRilExt/slot3 u:object_r:hal_ril_ext_service:s0