@ata מתברר שהשינויים של AFwall+ אמנם לא נמחקים אחרי מחיקת האפליקציה אבל כן נמחקים אחרי הפעלה מחדש.
שינויים שיגבילו אינטרנט לאפליקציה וישמרו לתמיד גם אחרי הפעלה מחדש עוד לא מצאתי דרך.
מ"מ ניסיתי לעשות סקריפט שיעשה אותו דבר, אבל לא הצלחתי לעשות שהוא ירוץ מחדש אחרי כל הפעלה מחדש.
זה הכי רחוק שהגעתי עד עכשיו. (זה עדיין לא מושלם כי צריך הרשאות רוט ואם מגיסק יוגבל אז מן הסתם הפקודות הבאות לא יעבדו)
sailfish:/ # cat /system/myfolder/Fscript.sh
#!/system/bin/sh
#Check if the argument passed is -b or -R
if [ "$1" != "-b" ] && [ "$1" != "-R" ]; then
echo "Usage: $0 -b <package_name> # Block internet access for a package"
echo " $0 -R # Reset changes"
exit 1
fi
#Function to block internet access for a package
block_package() {
package_name="$1"
# Check if the package exists
if ! pm list packages | grep -q "^package:$package_name$"; then
echo "Package '$package_name' not found."
exit 1
fi
#Get the UID of the package owner
uid=$(dumpsys package "$package_name" | grep -E 'userId=[0-9]+' | grep -oE '[0-9]+')
#Block internet access for the package using iptables
su -c iptables -A OUTPUT -m owner --uid-owner "$uid" -j DROP
echo "Internet access blocked for package: $package_name"
}
#Function to reset changes
reset_changes() {
# Flush iptables rules
su -c iptables -F OUTPUT
echo "Changes reset successfully."
}
#Main script logic
if [ "$1" == "-b" ]; then
# Check if the package name is provided
if [ -z "$2" ]; then
echo "Please provide the package name."
echo "Usage: $0 -b <package_name>"
exit 1
fi
block_package "$2"
elif [ "$1" == "-R" ]; then
reset_changes
fi
sailfish:/ # cat /system/myfolder/blockapp.sh
#!/system/bin/sh
package_name="$1"
if [ -z "$package_name" ]; then
echo "Usage: $0 package"
exit 1
fi
# Monitor loop
while true; do
# Check if the package is running
if pidof "$package_name" >/dev/null; then
# Package is running, block its internet access
/system/myfolder/Fscript.sh -b "$package_name"
break
fi
# Wait for some time before checking again (adjust as needed)
sleep 5
done