diff --git a/aosp/system/core/rootdir/init.rc b/aosp/system/core/rootdir/init.rc
index 0d3ebe43f22b6bd0e6837a4705d5f00369b04a6e..cef0f3334f959d850f4a7ebd21cc21de181b34c3 100644
--- a/aosp/system/core/rootdir/init.rc
+++ b/aosp/system/core/rootdir/init.rc
@@ -884,7 +884,7 @@ on boot
start uinput
# Once everything is setup, no need to modify /.
# The bind+remount combination allows this to work in containers.
- mount rootfs rootfs / remount bind ro nodev
+ mount rootfs rootfs / remount bind rw nodev
# basic network init
ifup lo
diff --git a/aosp/vendor/common/android/gms/GoogleLoginService/Android.mk b/aosp/vendor/common/android/gms/GoogleLoginService/Android.mk
new file mode 100755
index 0000000000000000000000000000000000000000..600219ce06ee7dcdbb2aa96f437d6c5442a8518b
--- /dev/null
+++ b/aosp/vendor/common/android/gms/GoogleLoginService/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := GoogleLoginService
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := APPS
+LOCAL_CERTIFICATE := PRESIGNED
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_DEX_PREOPT := false
+
+include $(BUILD_PREBUILT)
+
diff --git a/aosp/vendor/common/android/gms/GoogleLoginService/GoogleLoginService.apk b/aosp/vendor/common/android/gms/GoogleLoginService/GoogleLoginService.apk
new file mode 100755
index 0000000000000000000000000000000000000000..2e45186d6657f6493522afa3625fdd5b8177d2ba
Binary files /dev/null and b/aosp/vendor/common/android/gms/GoogleLoginService/GoogleLoginService.apk differ
diff --git a/aosp/vendor/common/android/gms/GoogleServicesFramework/Android.mk b/aosp/vendor/common/android/gms/GoogleServicesFramework/Android.mk
new file mode 100755
index 0000000000000000000000000000000000000000..7d23a4a21fc117869df888851f6f3029128cc34f
--- /dev/null
+++ b/aosp/vendor/common/android/gms/GoogleServicesFramework/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := GoogleServicesFramework
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := APPS
+LOCAL_CERTIFICATE := PRESIGNED
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_DEX_PREOPT := false
+
+include $(BUILD_PREBUILT)
+
diff --git a/aosp/vendor/common/android/gms/GoogleServicesFramework/GoogleServicesFramework.apk b/aosp/vendor/common/android/gms/GoogleServicesFramework/GoogleServicesFramework.apk
new file mode 100755
index 0000000000000000000000000000000000000000..624a1f2fc77ec5d6acba1acfa6634238b77ed6de
Binary files /dev/null and b/aosp/vendor/common/android/gms/GoogleServicesFramework/GoogleServicesFramework.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/Android.mk b/aosp/vendor/common/android/gms/Phonesky/Android.mk
new file mode 100755
index 0000000000000000000000000000000000000000..721054c7d300044af9672148e662d5f08e14b4a6
--- /dev/null
+++ b/aosp/vendor/common/android/gms/Phonesky/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := Phonesky
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := APPS
+LOCAL_CERTIFICATE := PRESIGNED
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_DEX_PREOPT := false
+
+include $(BUILD_PREBUILT)
+
diff --git a/aosp/vendor/common/android/gms/Phonesky/Phonesky.apk b/aosp/vendor/common/android/gms/Phonesky/Phonesky.apk
new file mode 100755
index 0000000000000000000000000000000000000000..4ef6f1c6e139e627ecd9ea5e4747b02307408205
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/Phonesky.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.arm64_v8a.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.arm64_v8a.apk
new file mode 100755
index 0000000000000000000000000000000000000000..9b42672c4a0a18fa6fa5bb579ec2e0823d16f5d8
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.arm64_v8a.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.da.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.da.apk
new file mode 100755
index 0000000000000000000000000000000000000000..c75f3aff658945cf9dac1d4d2c36597c3f9e3edb
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.da.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.de.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.de.apk
new file mode 100755
index 0000000000000000000000000000000000000000..76a88d2be8cf97cbf2ddd2516621b8f2fc17bfa0
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.de.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.en.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.en.apk
new file mode 100755
index 0000000000000000000000000000000000000000..ea624be5be4f57879aad5573516aae3ffe73f81a
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.en.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.es.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.es.apk
new file mode 100755
index 0000000000000000000000000000000000000000..52a7f004241237b729d1cf6f872180dfd7926819
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.es.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.fi.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.fi.apk
new file mode 100755
index 0000000000000000000000000000000000000000..80e758a9570e471c427e8aace7b1999c24647fbf
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.fi.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.fr.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.fr.apk
new file mode 100755
index 0000000000000000000000000000000000000000..750b8c3400a0ec2bc260a85dfc6c8c132c9780e1
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.fr.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.hi.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.hi.apk
new file mode 100755
index 0000000000000000000000000000000000000000..17ab41dbc60824cc46d7ec76a4712058fb5d582f
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.hi.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.in.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.in.apk
new file mode 100755
index 0000000000000000000000000000000000000000..9a7cc4c4d233e16715cf84573e397d31c072ad07
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.in.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.it.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.it.apk
new file mode 100755
index 0000000000000000000000000000000000000000..94f847e11437c44e1f8a0ed93488793e6822efb2
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.it.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.ja.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ja.apk
new file mode 100755
index 0000000000000000000000000000000000000000..25e2478b4cf41a4bf7a14ac99ba984aebea60500
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ja.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.ms.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ms.apk
new file mode 100755
index 0000000000000000000000000000000000000000..3a571ebb55f47a5480173fa58ac01c4f4bfbdc41
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ms.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.nb.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.nb.apk
new file mode 100755
index 0000000000000000000000000000000000000000..219dd4716e0f20b2977fe1a5d534aead63edd414
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.nb.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.pt.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.pt.apk
new file mode 100755
index 0000000000000000000000000000000000000000..5a44e72e05ac75a460602229bb6f5c7ea0247925
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.pt.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.ru.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ru.apk
new file mode 100755
index 0000000000000000000000000000000000000000..f8989ca4f7f1843e13b51dfdcb2038cb4b98268a
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.ru.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.sv.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.sv.apk
new file mode 100755
index 0000000000000000000000000000000000000000..875b5be016919868596e0d368c0e0f9ba29be3d1
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.sv.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.th.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.th.apk
new file mode 100755
index 0000000000000000000000000000000000000000..cce9db69a9b00b4a4b4fcfb316cb819c3773e4f0
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.th.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.tl.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.tl.apk
new file mode 100755
index 0000000000000000000000000000000000000000..4ca488760bb17577eaa44782be6fbc16783adef9
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.tl.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.uk.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.uk.apk
new file mode 100755
index 0000000000000000000000000000000000000000..d159a16f2d81bc20e91bc30d1a176091ce583d2f
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.uk.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.vi.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.vi.apk
new file mode 100755
index 0000000000000000000000000000000000000000..3e2b4e61c4a12177569b4beee139be3f399f00c5
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.vi.apk differ
diff --git a/aosp/vendor/common/android/gms/Phonesky/split/split_config.zh.apk b/aosp/vendor/common/android/gms/Phonesky/split/split_config.zh.apk
new file mode 100755
index 0000000000000000000000000000000000000000..b0f1c8c7c08db442991ac7658aa89f5011171000
Binary files /dev/null and b/aosp/vendor/common/android/gms/Phonesky/split/split_config.zh.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/Android.mk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/Android.mk
new file mode 100755
index 0000000000000000000000000000000000000000..b025ab2919432763f50335f8747faa934571f74a
--- /dev/null
+++ b/aosp/vendor/common/android/gms/PrebuiltGmsCore/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := PrebuiltGmsCore
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := APPS
+LOCAL_CERTIFICATE := PRESIGNED
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_DEX_PREOPT := false
+
+include $(BUILD_PREBUILT)
+
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/PrebuiltGmsCore.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/PrebuiltGmsCore.apk
new file mode 100755
index 0000000000000000000000000000000000000000..6add4ac931285fd48e52e433bc437d4a5bb17530
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/PrebuiltGmsCore.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_GoogleCertificates.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_GoogleCertificates.apk
new file mode 100755
index 0000000000000000000000000000000000000000..eb1d155672c813af59624461d5f80595ec2ae29a
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_GoogleCertificates.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.de.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.de.apk
new file mode 100755
index 0000000000000000000000000000000000000000..7955ba3e0f10635a55cc6375cc01b86446509e41
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.de.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.en.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.en.apk
new file mode 100755
index 0000000000000000000000000000000000000000..899f82864fa747746846ca09eeeb830c74521926
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.en.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.es.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.es.apk
new file mode 100755
index 0000000000000000000000000000000000000000..1e5d29f6ef5ff67b19ac950707841e53a3602dcb
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.es.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.fr.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.fr.apk
new file mode 100755
index 0000000000000000000000000000000000000000..d02ac1ec771ddf561243976442f1ff2e95dc064e
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.fr.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.hi.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.hi.apk
new file mode 100755
index 0000000000000000000000000000000000000000..75a63881275dd696d1eb39db881f212c3d60799c
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.hi.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.in.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.in.apk
new file mode 100755
index 0000000000000000000000000000000000000000..893a7e0f089694e9d8752e0b0d9a0ca6b15b39fa
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.in.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.it.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.it.apk
new file mode 100755
index 0000000000000000000000000000000000000000..05d76ae5a1fe4589448f5258605455cdf75fdbd1
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.it.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ja.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ja.apk
new file mode 100755
index 0000000000000000000000000000000000000000..3591cbca83a75c21aaa7c2d454d2e54ef0f7eaad
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ja.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ms.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ms.apk
new file mode 100755
index 0000000000000000000000000000000000000000..c56a6f69218d113614de78d9a70e5dda50e4e12b
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ms.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.pt.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.pt.apk
new file mode 100755
index 0000000000000000000000000000000000000000..e59dc6ae0697267a175b30d2c07d96ad62354694
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.pt.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ru.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ru.apk
new file mode 100755
index 0000000000000000000000000000000000000000..ac110b5b1c7e868206ae82a059c3f14199024d70
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.ru.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.xhdpi.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.xhdpi.apk
new file mode 100755
index 0000000000000000000000000000000000000000..bc09affde1fe0dcc50382ec5ba0447a19479962d
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.xhdpi.apk differ
diff --git a/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.zh.apk b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.zh.apk
new file mode 100755
index 0000000000000000000000000000000000000000..bddc639dd6762e1eac276b96dd1076c8e44a879b
Binary files /dev/null and b/aosp/vendor/common/android/gms/PrebuiltGmsCore/split/split_config.zh.apk differ
diff --git a/aosp/vendor/common/android/gms/system/etc/permissions/extend.xml b/aosp/vendor/common/android/gms/system/etc/permissions/extend.xml
new file mode 100755
index 0000000000000000000000000000000000000000..17d679b36f91b28a2bbd1899c645009942f9ab85
--- /dev/null
+++ b/aosp/vendor/common/android/gms/system/etc/permissions/extend.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aosp/vendor/common/android/gms/system/etc/sysconfig/google.xml b/aosp/vendor/common/android/gms/system/etc/sysconfig/google.xml
new file mode 100755
index 0000000000000000000000000000000000000000..425f69629bb687f547cf38338b8ebcc982a9e1ef
--- /dev/null
+++ b/aosp/vendor/common/android/gms/system/etc/sysconfig/google.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aosp/vendor/common/products/product_extra.mk b/aosp/vendor/common/products/product_extra.mk
index 2f36c5adebf439e94f59f85607635045b61144b5..02bd9308fe78c10b599632eff6f8a090a868f2be 100644
--- a/aosp/vendor/common/products/product_extra.mk
+++ b/aosp/vendor/common/products/product_extra.mk
@@ -4,11 +4,16 @@
#
PRODUCT_PACKAGES += \
- HuaweiBrowser \
- HuaweiHmsCore \
- HuaweiInput \
- OpenCamera \
- HuaweiIme
+ GoogleServicesFramework \
+ PrebuiltGmsCore \
+ GoogleLoginService \
+ Phonesky \
+
+PRODUCT_COPY_FILES += \
+ vendor/common/android/gms/system/etc/permissions/extend.xml:system/etc/permissions/extend.xml \
+ vendor/common/android/gms/system/etc/sysconfig/google.xml:system/etc/sysconfig/google.xml \
+ $(call find-copy-subdir-files,*,vendor/common/android/gms/Phonesky/split,system/priv-app/Phonesky) \
+ $(call find-copy-subdir-files,*,vendor/common/android/gms/PrebuiltGmsCore/split,system/priv-app/PrebuiltGmsCore)
# PRODUCT_PACKAGES += \
# TODO: add your application