check VMOS app
#!/system/bin/sh
process_names=("ueventd" "servicemanager" "installd" "surfaceflinger" "netd" "system_server")
pkgNames=()
sdk=$(getprop ro.build.version.sdk)
multiple_instance_detected=false
for process_name in "${process_names[@]}"
do
if [ $sdk -eq 23 ]; then
pids=$(busybox pidof $process_name)
else
pids=$(pidof $process_name)
fi
pid_count=$(echo "$pids" | awk 'END {print NF}')
if [ $pid_count -gt 1 ]; then
multiple_instance_detected=true
echo "Multiple instances of $process_name detected!"
# Perform actions for each PID found
for pid in $pids
do
uid=$(cat /proc/$pid/status | grep "Uid" | awk '{print $2}')
if [ $uid -ne 0 ] && [ $uid -ge 10000 ]; then
if [ $sdk -eq 23 ]; then
packageName=$(cat /data/system/packages.list | grep $uid | awk -F' ' '{printf$1}')
else
packageName=$(pm list packages --uid $uid | awk -F':' '{printf$2}' | awk -F' ' '{printf$1}')
fi
pkgNames+=("${packageName}")
fi
done
fi
if $multiple_instance_detected; then
break
fi
done
if ! $multiple_instance_detected; then
echo "No multiple instances detected."
else
pkgSize=${#pkgNames[@]}
if [ $pkgSize -gt 0 ]; then
value=""
for pkg in "${pkgNames[@]}"
do
value="${pkg},"
done
value="${value%?}"
if [ -z "${value}" ]; then
echo "No multiple instances detected."
else
am broadcast -a VMOS_DETECT --esa pkgNames ${value}
fi
fi
fi