extract_utils: Add support for system_ext
Change-Id: I0760cdd9bec1a0a0551aa68a60c34f9c00932668
diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh
index 657bacb..34801fe 100644
--- a/build/tools/extract_utils.sh
+++ b/build/tools/extract_utils.sh
@@ -284,6 +284,14 @@
local OUTTARGET=$(truncate_file $TARGET)
printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_PRODUCT)/%s%s\n' \
"$OUTDIR" "$TARGET" "$OUTTARGET" "$LINEEND" >> "$PRODUCTMK"
+ elif prefix_match_file "system_ext/" $TARGET ; then
+ local OUTTARGET=$(truncate_file $TARGET)
+ printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_SYSTEM_EXT)/%s%s\n' \
+ "$OUTDIR" "$TARGET" "$OUTTARGET" "$LINEEND" >> "$PRODUCTMK"
+ elif prefix_match_file "system/system_ext/" $TARGET ; then
+ local OUTTARGET=$(truncate_file $TARGET)
+ printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_SYSTEM_EXT)/%s%s\n' \
+ "$OUTDIR" "$TARGET" "$OUTTARGET" "$LINEEND" >> "$PRODUCTMK"
elif prefix_match_file "odm/" $TARGET ; then
local OUTTARGET=$(truncate_file $TARGET)
printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_ODM)/%s%s\n' \
@@ -320,7 +328,7 @@
# write_blueprint_packages:
#
# $1: The LOCAL_MODULE_CLASS for the given module list
-# $2: /system, /odm, /product, or /vendor partition
+# $2: /system, /odm, /product, /system_ext, or /vendor partition
# $3: type-specific extra flags
# $4: Name of the array holding the target list
#
@@ -364,6 +372,8 @@
SRC+="/vendor"
elif [ "$PARTITION" = "product" ]; then
SRC+="/product"
+ elif [ "$PARTITION" = "system_ext" ]; then
+ SRC+="/system_ext"
elif [ "$PARTITION" = "odm" ]; then
SRC+="/odm"
fi
@@ -476,6 +486,8 @@
printf '\tsoc_specific: true,\n'
elif [ "$PARTITION" = "product" ]; then
printf '\tproduct_specific: true,\n'
+ elif [ "$PARTITION" = "system_ext" ]; then
+ printf '\tsystem_ext_specific: true,\n'
elif [ "$PARTITION" = "odm" ]; then
printf '\tdevice_specific: true,\n'
fi
@@ -487,7 +499,7 @@
# write_makefile_packages:
#
# $1: The LOCAL_MODULE_CLASS for the given module list
-# $2: /odm, /product, or /vendor partition
+# $2: /odm, /product, /system_ext, or /vendor partition
# $3: type-specific extra flags
# $4: Name of the array holding the target list
#
@@ -537,6 +549,8 @@
SRC+="/vendor"
elif [ "$PARTITION" = "product" ]; then
SRC+="/product"
+ elif [ "$PARTITION" = "system_ext" ]; then
+ SRC+="/system_ext"
elif [ "$PARTITION" = "odm" ]; then
SRC+="/odm"
fi
@@ -620,6 +634,8 @@
printf 'LOCAL_VENDOR_MODULE := true\n'
elif [ "$PARTITION" = "product" ]; then
printf 'LOCAL_PRODUCT_MODULE := true\n'
+ elif [ "$PARTITION" = "system_ext" ]; then
+ printf 'LOCAL_SYSTEM_EXT_MODULE := true\n'
elif [ "$PARTITION" = "odm" ]; then
printf 'LOCAL_ODM_MODULE := true\n'
fi
@@ -710,6 +726,22 @@
write_blueprint_packages "SHARED_LIBRARIES" "product" "64" "P_LIB64" >> "$ANDROIDBP"
fi
+ local T_SE_LIB32=( $(prefix_match "system_ext/lib/") )
+ local T_SE_LIB64=( $(prefix_match "system_ext/lib64/") )
+ local SE_MULTILIBS=( $(comm -12 <(printf '%s\n' "${T_SE_LIB32[@]}") <(printf '%s\n' "${T_SE_LIB64[@]}")) )
+ local SE_LIB32=( $(comm -23 <(printf '%s\n' "${T_SE_LIB32[@]}") <(printf '%s\n' "${SE_MULTILIBS[@]}")) )
+ local SE_LIB64=( $(comm -23 <(printf '%s\n' "${T_SE_LIB64[@]}") <(printf '%s\n' "${SE_MULTILIBS[@]}")) )
+
+ if [ "${#SE_MULTILIBS[@]}" -gt "0" ]; then
+ write_blueprint_packages "SHARED_LIBRARIES" "system_ext" "both" "SE_MULTILIBS" >> "$ANDROIDBP"
+ fi
+ if [ "${#SE_LIB32[@]}" -gt "0" ]; then
+ write_blueprint_packages "SHARED_LIBRARIES" "system_ext" "32" "SE_LIB32" >> "$ANDROIDBP"
+ fi
+ if [ "${#SE_LIB64[@]}" -gt "0" ]; then
+ write_blueprint_packages "SHARED_LIBRARIES" "system_ext" "64" "SE_LIB64" >> "$ANDROIDBP"
+ fi
+
local T_O_LIB32=( $(prefix_match "odm/lib/") )
local T_O_LIB64=( $(prefix_match "odm/lib64/") )
local O_MULTILIBS=( $(comm -12 <(printf '%s\n' "${T_O_LIB32[@]}") <(printf '%s\n' "${T_O_LIB64[@]}")) )
@@ -759,6 +791,14 @@
if [ "${#P_PRIV_APPS[@]}" -gt "0" ]; then
write_blueprint_packages "APPS" "product" "priv-app" "P_PRIV_APPS" >> "$ANDROIDBP"
fi
+ local SE_APPS=( $(prefix_match "system_ext/app/") )
+ if [ "${#SE_APPS[@]}" -gt "0" ]; then
+ write_blueprint_packages "APPS" "system_ext" "" "SE_APPS" >> "$ANDROIDBP"
+ fi
+ local SE_PRIV_APPS=( $(prefix_match "system_ext/priv-app/") )
+ if [ "${#SE_PRIV_APPS[@]}" -gt "0" ]; then
+ write_blueprint_packages "APPS" "system_ext" "priv-app" "SE_PRIV_APPS" >> "$ANDROIDBP"
+ fi
local O_APPS=( $(prefix_match "odm/app/") )
if [ "${#O_APPS[@]}" -gt "0" ]; then
write_blueprint_packages "APPS" "odm" "" "O_APPS" >> "$ANDROIDBP"
@@ -785,6 +825,10 @@
if [ "${#P_FRAMEWORK[@]}" -gt "0" ]; then
write_blueprint_packages "JAVA_LIBRARIES" "product" "" "P_FRAMEWORK" >> "$ANDROIDBP"
fi
+ local SE_FRAMEWORK=( $(prefix_match "system_ext/framework/") )
+ if [ "${#P_FRAMEWORK[@]}" -gt "0" ]; then
+ write_blueprint_packages "JAVA_LIBRARIES" "system_ext" "" "SE_FRAMEWORK" >> "$ANDROIDBP"
+ fi
local O_FRAMEWORK=( $(prefix_match "odm/framework/") )
if [ "${#O_FRAMEWORK[@]}" -gt "0" ]; then
write_blueprint_packages "JAVA_LIBRARIES" "odm" "" "O_FRAMEWORK" >> "$ANDROIDBP"
@@ -807,6 +851,10 @@
if [ "${#P_ETC[@]}" -gt "0" ]; then
write_blueprint_packages "ETC" "product" "" "P_ETC" >> "$ANDROIDBP"
fi
+ local SE_ETC=( $(prefix_match "system_ext/etc/") )
+ if [ "${#SE_ETC[@]}" -gt "0" ]; then
+ write_blueprint_packages "ETC" "system_ext" "" "SE_ETC" >> "$ANDROIDBP"
+ fi
local O_ETC=( $(prefix_match "odm/etc/") )
if [ "${#O_ETC[@]}" -gt "0" ]; then
write_blueprint_packages "ETC" "odm" "" "O_ETC" >> "$ANDROIDBP"
@@ -829,6 +877,10 @@
if [ "${#P_BIN[@]}" -gt "0" ]; then
write_blueprint_packages "EXECUTABLES" "product" "" "P_BIN" >> "$ANDROIDBP"
fi
+ local SE_BIN=( $(prefix_match "system_ext/bin/") )
+ if [ "${#SE_BIN[@]}" -gt "0" ]; then
+ write_blueprint_packages "EXECUTABLES" "system_ext" "" "SE_BIN" >> "$ANDROIDBP"
+ fi
local O_BIN=( $(prefix_match "odm/bin/") )
if [ "${#O_BIN[@]}" -gt "0" ]; then
write_blueprint_packages "EXECUTABLES" "odm" "" "O_BIN" >> "$ANDROIDBP"
@@ -1481,7 +1533,7 @@
exit 1
fi
- for PARTITION in "system" "odm" "product" "vendor"
+ for PARTITION in "system" "odm" "product" "system_ext" "vendor"
do
# If OTA is block based, extract it.
if [ -a "$DUMPDIR"/"$PARTITION".new.dat.br ]; then