|
|
|
# A little bit of copied methods to try to prevent MicroG dirty flash problems
|
|
|
|
# For MinMicroG (FriendlyNeighborhoodShane)
|
|
|
|
|
|
|
|
microg_cleanup() {
|
|
|
|
|
|
|
|
if [ "$(echo "$stuff" | grep MicroG)" ]; then
|
|
|
|
ui_print " ";
|
|
|
|
ui_print "Doing MicroG preparations...";
|
|
|
|
if [ "$bootmode" != "true" ]; then
|
|
|
|
# Kanged from NanoDroid
|
|
|
|
# Thanks Setialpha
|
|
|
|
cleanup_folders="BlankStore GmsCore GmsCore_update GmsCoreSetupPrebuilt GoogleServicesFramework GsfProxy Phonesky PlayStore PrebuiltGmsCorePi PrebuiltGmsCorePix PrebuiltGmsCore Vending";
|
|
|
|
cleanup_packages="com.android.vending com.google.android.feedback com.google.android.gms com.google.android.gsf com.google.android.gsf.login com.mgoogle.android.gms";
|
|
|
|
for app in $cleanup_folders; do
|
|
|
|
for file in /data/dalvik-cache/*/system"@priv-app@$app"[@\.]*@classes.* /data/dalvik-cache/*/system"@app@$app"[@\.]*@classes.*; do
|
|
|
|
[ -e "$file" ] && { log "PREPPER: Removing $file"; rm -rf "$file"; }
|
|
|
|
done;
|
|
|
|
done;
|
|
|
|
if [ ! -f "$root/system/etc/.mmg" ]; then
|
|
|
|
log "Doing the clean install treatment";
|
|
|
|
for app in $cleanup_packages; do
|
|
|
|
for file in "/data/data/${app}" "/data/user/*/$app" "/data/user_de/*/$app" "/data/app/$app"-* "/mnt/asec/$app"-* "/data/media/0/Android/data/$app"; do
|
|
|
|
[ -e "$file" ] && { log "PREPPER: Removing $file"; rm -rf "$file"; }
|
|
|
|
done;
|
|
|
|
done;
|
|
|
|
for file in /data/system/users/*/runtime-permissions.xml; do
|
|
|
|
[ -e "$file" ] && { log "PREPPER: Removing $file"; rm -rf "$file"; }
|
|
|
|
done;
|
|
|
|
if [ -f /data/system/packages.list ]; then
|
|
|
|
for app in $cleanup_packages; do
|
|
|
|
if [ "$(grep "$app" /data/system/packages.list)" ]; then
|
|
|
|
log "PREPPER: de-registering app: $app";
|
|
|
|
sed -i "s/.*${app}.*//g" /data/system/packages.list;
|
|
|
|
fi;
|
|
|
|
done;
|
|
|
|
else
|
|
|
|
log "PREPPER: This is a clean flash";
|
|
|
|
fi;
|
|
|
|
if [ "$(which sqlite3)" ]; then
|
|
|
|
find /data/system* -type f -name "accounts*db" 2>/dev/null | while read database; do
|
|
|
|
log "PREPPER: deleting Google Accounts from $database";
|
|
|
|
sqlite3 "$database" "DELETE FROM accounts WHERE type='com.google';";
|
|
|
|
done
|
|
|
|
else
|
|
|
|
log "PREPPER: sqlite3 not found";
|
|
|
|
fi;
|
|
|
|
fi;
|
|
|
|
touch "$root/system/etc/.mmg";
|
|
|
|
fi;
|
|
|
|
if [ "$magisk" = "yes" ]; then
|
|
|
|
# Kanged from MagicGapps
|
|
|
|
# Thanks VR25
|
|
|
|
for dir in /data/adb/magisk_simple /cache/magisk_mount; do
|
|
|
|
rm -rf "$dir/system/etc";
|
|
|
|
mkdir -p "$dir/system";
|
|
|
|
cp -rf "$root/system/etc" "$dir/system/";
|
|
|
|
done;
|
|
|
|
for dir in /magisk /sbin/.core/img /magisk_merge; do
|
|
|
|
[ -e "$dir/.core/service.d/MagicGApps.sh" ] && { log "PREPPER: Removing $dir/.core/service.d/MagicGApps.sh"; rm -rf "$dir/.core/service.d/MagicGApps.sh"; }
|
|
|
|
done;
|
|
|
|
serviceb='
|
|
|
|
{
|
|
|
|
# To apparently fix permissions
|
|
|
|
until [ -e "/data" -a -e "/cache" ]; do sleep 5; done;
|
|
|
|
[ -f "/system/system/build.prop" ] && sysroot=/system;
|
|
|
|
for dir in /data/adb/magisk_simple /cache/magisk_mount; do
|
|
|
|
rm -rf "$dir/system/etc";
|
|
|
|
mkdir -p "$dir/system";
|
|
|
|
cp -rf "$sysroot/system/etc" "$dir/system/";
|
|
|
|
done;
|
|
|
|
}
|
|
|
|
';
|
|
|
|
service="$service$serviceb";
|
|
|
|
fi;
|
|
|
|
fi;
|
|
|
|
|
|
|
|
}
|