Adapt free space checks to new partitions
And don't count as needed space that will be freed from the replaced files. This will allow to flash the zip over an existing installation when space is tight. Also: awk --> tr | cut because recovery might not provide awk grep -v --> tail -1 in du because it might spit out 3 lines
This commit is contained in:
parent
964016a9ad
commit
2b244a1ead
@ -32,6 +32,12 @@ cleanup() {
|
||||
umount -l /system_ext || true
|
||||
}
|
||||
|
||||
error_no_space() {
|
||||
ui_print "Not enough space for GApps! Aborting"
|
||||
cleanup
|
||||
exit 1
|
||||
}
|
||||
|
||||
get_block_for_mount_point() {
|
||||
grep -v "^#" /etc/recovery.fstab | grep " $1 " | tail -n1 | tr -s ' ' | cut -d' ' -f1
|
||||
}
|
||||
@ -63,6 +69,36 @@ find_block() {
|
||||
fi
|
||||
}
|
||||
|
||||
compute_apps_size() {
|
||||
NEEDED_STORAGE_SYSTEM=$(expr $(du -cs `find -maxdepth 1 -mindepth 1 ! -name product ! -name system_ext` | tail -n1 | cut -f1) + $STORAGE_BUFFER)
|
||||
NEEDED_STORAGE_PRODUCT=$(expr $(du -s ./product | cut -f1) + $STORAGE_BUFFER)
|
||||
NEEDED_STORAGE_SYSTEM_EXT=$(expr $(du -s ./system_ext | cut -f1) + $STORAGE_BUFFER)
|
||||
|
||||
RECLAIMABLE_STORAGE_SYSTEM=$(find . ! -path "./product/*" ! -path "./system_ext/*" -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
|
||||
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM - $RECLAIMABLE_STORAGE_SYSTEM)
|
||||
|
||||
RECLAIMABLE_STORAGE_PRODUCT=$(find ./product -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
|
||||
NEEDED_STORAGE_PRODUCT=$(expr $NEEDED_STORAGE_PRODUCT - $RECLAIMABLE_STORAGE_PRODUCT)
|
||||
|
||||
RECLAIMABLE_STORAGE_SYSTEM_EXT=$(find ./system_ext -type f | sed "s|^./|$SYSTEM_OUT/|" | xargs ls -d 2>/dev/null | xargs du -cs PLACEHOLDER 2>/dev/null | tail -n1 | cut -f1)
|
||||
NEEDED_STORAGE_SYSTEM_EXT=$(expr $NEEDED_STORAGE_SYSTEM_EXT - $RECLAIMABLE_STORAGE_SYSTEM_EXT)
|
||||
|
||||
if [ -z "$PRODUCT_BLOCK" ]; then
|
||||
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM + $NEEDED_STORAGE_PRODUCT - $STORAGE_BUFFER)
|
||||
fi
|
||||
if [ -z "$SYSTEM_EXT_BLOCK" ]; then
|
||||
NEEDED_STORAGE_SYSTEM=$(expr $NEEDED_STORAGE_SYSTEM + $NEEDED_STORAGE_SYSTEM_EXT - $STORAGE_BUFFER)
|
||||
fi
|
||||
}
|
||||
|
||||
remove_big_optional_apps() {
|
||||
ui_print "Low resource device detected, removing large extras"
|
||||
rm -rf product/app/MarkupGoogle
|
||||
rm -rf product/priv-app/AndroidMigratePrebuilt
|
||||
rm -rf product/priv-app/SetupWizardPrebuilt
|
||||
rm -rf product/priv-app/Velvet
|
||||
}
|
||||
|
||||
ui_print "**********************"
|
||||
ui_print "MindTheGapps installer"
|
||||
ui_print "**********************"
|
||||
@ -136,9 +172,14 @@ if [ -n "$SYSTEM_EXT_BLOCK" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
LOWMEM=1572864
|
||||
MEM=`grep MemTotal /proc/meminfo | awk '{ print $2 }'`
|
||||
STORAGE=`df $SYSTEM_MNT | grep -v Filesystem | awk '{ print $4 }'`
|
||||
# Compute storage requirements
|
||||
SYSTEM_STORAGE=`df $SYSTEM_MNT | tail -1 | tr -s ' ' | cut -d ' ' -f4`
|
||||
if [ -n "$PRODUCT_BLOCK" ]; then
|
||||
PRODUCT_STORAGE=`df /product | tail -1 | tr -s ' ' | cut -d ' ' -f4`
|
||||
fi
|
||||
if [ -n "$SYSTEM_EXT_BLOCK" ]; then
|
||||
SYSTEM_EXT_STORAGE=`df /system_ext | tail -1 | tr -s ' ' | cut -d ' ' -f4`
|
||||
fi
|
||||
STORAGE_BUFFER=10240
|
||||
|
||||
ui_print "Extracting files"
|
||||
@ -146,23 +187,25 @@ cd /tmp
|
||||
unzip -o "$ZIP"
|
||||
rm -rf META-INF
|
||||
cd system
|
||||
compute_apps_size
|
||||
|
||||
NEEDED_STORAGE=`expr $(du -s . | awk '{ print $1 }') + $STORAGE_BUFFER`
|
||||
|
||||
if [ "$MEM" -lt "$LOWMEM" ] || [ "$STORAGE" -lt "$NEEDED_STORAGE" ]; then
|
||||
ui_print "Low resource device detected, removing large extras"
|
||||
rm -rf product/app/MarkupGoogle
|
||||
rm -rf product/priv-app/AndroidMigratePrebuilt
|
||||
rm -rf product/priv-app/SetupWizardPrebuilt
|
||||
rm -rf product/priv-app/Velvet
|
||||
NEEDED_STORAGE=`expr $(du -s . | awk '{ print $1 }') + $STORAGE_BUFFER`
|
||||
if [ "$STORAGE" -lt "$NEEDED_STORAGE" ]; then
|
||||
ui_print "Not enough space for GApps! Aborting"
|
||||
cd ..
|
||||
rm -rf system
|
||||
exit 1
|
||||
if [ "$SYSTEM_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM" ]; then
|
||||
remove_big_optional_apps
|
||||
compute_apps_size
|
||||
if [ "$SYSTEM_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM" ]; then
|
||||
error_no_space
|
||||
fi
|
||||
fi
|
||||
if [ -n "$PRODUCT_BLOCK" ] && [ "$PRODUCT_STORAGE" -lt "$NEEDED_STORAGE_PRODUCT" ]; then
|
||||
remove_big_optional_apps
|
||||
compute_apps_size
|
||||
if [ "$PRODUCT_STORAGE" -lt "$NEEDED_STORAGE_PRODUCT" ]; then
|
||||
error_no_space
|
||||
fi
|
||||
fi
|
||||
if [ -n "$SYSTEM_EXT_BLOCK" ] && [ "$SYSTEM_EXT_STORAGE" -lt "$NEEDED_STORAGE_SYSTEM_EXT" ]; then
|
||||
error_no_space
|
||||
fi
|
||||
|
||||
ui_print "Generating addon.d file"
|
||||
cat addon.d/addond_head > addon.d/30-gapps.sh
|
||||
|
Loading…
Reference in New Issue
Block a user