mirror of
https://github.com/opengapps/opengapps.git
synced 2025-11-08 07:54:31 +00:00
Support /system_ext partition
Added in Android 11: https://source.android.com/devices/bootloader/partitions#changes-in-android-r
This commit is contained in:
@@ -51,7 +51,7 @@ case "$1" in
|
||||
backup_file "$S"/"$FILE"
|
||||
done
|
||||
|
||||
umount /product /vendor 2> /dev/null
|
||||
umount /system_ext /product /vendor 2> /dev/null
|
||||
;;
|
||||
restore)
|
||||
list_files | while read -r FILE REPLACEMENT; do
|
||||
@@ -61,13 +61,13 @@ case "$1" in
|
||||
done
|
||||
;;
|
||||
pre-backup)
|
||||
mount_generic product vendor
|
||||
mount_generic system_ext product vendor
|
||||
;;
|
||||
post-backup)
|
||||
# Stub
|
||||
;;
|
||||
pre-restore)
|
||||
mount_generic product vendor
|
||||
mount_generic system_ext product vendor
|
||||
|
||||
# Remove Stock/AOSP apps (from GApps Installer)
|
||||
|
||||
@@ -105,7 +105,7 @@ case "$1" in
|
||||
esac
|
||||
done
|
||||
|
||||
umount /product /vendor 2> /dev/null
|
||||
umount /system_ext /product /vendor 2> /dev/null
|
||||
|
||||
if [ "$rom_build_sdk" -ge "26" ]; then # Android 8.0+ uses 0600 for its permission on build.prop
|
||||
chmod 600 "$SYS/build.prop"
|
||||
|
||||
@@ -951,7 +951,8 @@ mount_all() {
|
||||
fi
|
||||
(mount -o ro -t auto /vendor
|
||||
mount -o ro -t auto /product
|
||||
mount -o ro -t auto /persist) 2>/dev/null
|
||||
mount -o ro -t auto /persist
|
||||
mount -o ro -t auto /system_ext) 2>/dev/null
|
||||
setup_mountpoint $ANDROID_ROOT
|
||||
if ! is_mounted $ANDROID_ROOT; then
|
||||
mount -o ro -t auto $ANDROID_ROOT 2>/dev/null
|
||||
@@ -973,12 +974,14 @@ mount_all() {
|
||||
[ -e /dev/block/mapper/system ] || local slot=$(find_slot)
|
||||
mount -o ro -t auto /dev/block/mapper/vendor$slot /vendor
|
||||
mount -o ro -t auto /dev/block/mapper/product$slot /product 2>/dev/null
|
||||
mount -o ro -t auto /dev/block/mapper/system_ext$slot /system_ext 2>/dev/null
|
||||
mount -o ro -t auto /dev/block/mapper/system$slot /system_root
|
||||
else
|
||||
[ -e /dev/block/bootdevice/by-name/system ] || local slot=$(find_slot)
|
||||
(mount -o ro -t auto /dev/block/bootdevice/by-name/vendor$slot /vendor
|
||||
mount -o ro -t auto /dev/block/bootdevice/by-name/product$slot /product
|
||||
mount -o ro -t auto /dev/block/bootdevice/by-name/persist$slot /persist) 2>/dev/null
|
||||
mount -o ro -t auto /dev/block/bootdevice/by-name/persist$slot /persist
|
||||
mount -o ro -t auto /dev/block/bootdevice/by-name/system_ext$slot /system_ext) 2>/dev/null
|
||||
mount -o ro -t auto /dev/block/bootdevice/by-name/system$slot /system_root
|
||||
fi
|
||||
fi
|
||||
@@ -1003,7 +1006,7 @@ umount_all() {
|
||||
umount -l /system_root
|
||||
fi
|
||||
umount_apex
|
||||
for mount in /mnt/system /vendor /mnt/vendor /product /mnt/product /persist; do
|
||||
for mount in /mnt/system /vendor /mnt/vendor /product /mnt/product /persist /system_ext /mnt/system_ext; do
|
||||
umount $mount
|
||||
umount -l $mount
|
||||
done
|
||||
@@ -1072,7 +1075,7 @@ if ! $BOOTMODE; then
|
||||
mount_all
|
||||
fi
|
||||
if [ -d /dev/block/mapper ]; then
|
||||
for block in system vendor product; do
|
||||
for block in system vendor product system_ext; do
|
||||
for slot in "" _a _b; do
|
||||
blockdev --setrw /dev/block/mapper/$block$slot 2>/dev/null
|
||||
done
|
||||
@@ -1080,7 +1083,8 @@ if [ -d /dev/block/mapper ]; then
|
||||
fi
|
||||
mount -o rw,remount -t auto /system || mount -o rw,remount -t auto /
|
||||
(mount -o rw,remount -t auto /vendor
|
||||
mount -o rw,remount -t auto /product) 2>/dev/null
|
||||
mount -o rw,remount -t auto /product
|
||||
mount -o rw,remount -t auto /system_ext) 2>/dev/null
|
||||
|
||||
ui_print " "
|
||||
|
||||
@@ -1093,7 +1097,7 @@ device_abpartition=$(getprop ro.build.ab_update)
|
||||
# Declare Variables
|
||||
zip_folder="$(dirname "$OPENGAZIP")"
|
||||
g_prop=/system/etc/g.prop
|
||||
PROPFILES="$g_prop /system/default.prop /system/build.prop /system/product/build.prop /vendor/build.prop /product/build.prop /system_root/default.prop /system_root/build.prop /system_root/product/build.prop /data/local.prop /default.prop /build.prop"
|
||||
PROPFILES="$g_prop /system/default.prop /system/build.prop /system/vendor/build.prop /system/product/build.prop /system/system_ext/build.prop /vendor/build.prop /product/build.prop /system_ext/build.prop /system_root/default.prop /system_root/build.prop /system_root/vendor/build.prop /system_root/product/build.prop /system_root/system_ext/build.prop /data/local.prop /default.prop /build.prop"
|
||||
bkup_tail=$TMP/bkup_tail.sh
|
||||
gapps_removal_list=$TMP/gapps-remove.txt
|
||||
g_log=$TMP/g.log
|
||||
@@ -1443,7 +1447,7 @@ set_perm() {
|
||||
}
|
||||
|
||||
sys_app() {
|
||||
for folder in /system/app /system/product/app /system/priv-app /system/product/priv-app; do
|
||||
for folder in /system/app /system/product/app /system/system_ext/app /system/priv-app /system/product/priv-app /system/system_ext/priv-app; do
|
||||
if ( grep -q "codePath=\"$folder/$1" /data/system/packages.xml ); then
|
||||
return 0
|
||||
fi
|
||||
@@ -2335,7 +2339,7 @@ if [ -n "$user_remove_list" ]; then
|
||||
* ) testapk="${testapk}.apk" ;;
|
||||
esac
|
||||
# Create user_remove_folder_list if this is a system/ROM application
|
||||
for folder in /system/app /system/product/app /system/priv-app /system/product/priv-app; do # Check all subfolders of system app/priv-app folders for the apks
|
||||
for folder in /system/app /system/product/app /system/system_ext/app /system/priv-app /system/product/priv-app /system/system_ext/priv-app; do # Check all subfolders of system app/priv-app folders for the apks
|
||||
file_count=0 # Reset Counter
|
||||
file_count=$(find $folder -iname "$testapk" 2>/dev/null | wc -l)
|
||||
case $file_count in
|
||||
@@ -2577,7 +2581,7 @@ for user_app in $user_remove_folder_list; do
|
||||
done
|
||||
|
||||
# Remove any empty folders we may have created during the removal process
|
||||
for i in /system/app /system/product/app /system/priv-app /system/product/priv-app /system/vendor/pittpatt /system/usr/srec /system/etc/preferred-apps; do
|
||||
for i in /system/app /system/product/app /system/system_ext/app /system/priv-app /system/product/priv-app /system/system_ext/priv-app /system/vendor/pittpatt /system/usr/srec /system/etc/preferred-apps; do
|
||||
find "$i" -type d 2>/dev/null | xargs -r rmdir -p --ignore-fail-on-non-empty
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user