45 lines
1007 B
Bash
45 lines
1007 B
Bash
#!/system/bin/sh
|
|
MODDIR="${0%/*}"
|
|
HOOK_LIB="$MODDIR/libcamera_hook.so"
|
|
MODPROP="$MODDIR/module.prop"
|
|
INJECTOR="/data/local/tmp/inject_dlopen"
|
|
|
|
update_description() {
|
|
if [ -f "$MODPROP" ]; then
|
|
sed -i "s|^description=.*|description=$1|" "$MODPROP"
|
|
fi
|
|
}
|
|
|
|
update_description "Waiting for cameraserver..."
|
|
|
|
if [ ! -f "$HOOK_LIB" ]; then
|
|
update_description "Error - libcamera_hook.so not found"
|
|
exit 1
|
|
fi
|
|
|
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
|
|
CS_PID=$(pidof cameraserver 2>/dev/null)
|
|
if [ -n "$CS_PID" ]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
if [ -z "$CS_PID" ]; then
|
|
update_description "Error - cameraserver not running"
|
|
exit 1
|
|
fi
|
|
|
|
sleep 2
|
|
|
|
if [ -f "$INJECTOR" ]; then
|
|
"$INJECTOR" "$CS_PID" > /dev/kmsg 2>&1
|
|
sleep 1
|
|
fi
|
|
|
|
if grep -q "libcamera_hook.so" /proc/"$CS_PID"/maps 2>/dev/null; then
|
|
update_description "Active - hook loaded in cameraserver PID $CS_PID"
|
|
else
|
|
update_description "cameraserver PID $CS_PID - injection attempted"
|
|
fi
|