#!/vendor/bin/sh # /vendor/bin/init.fingerprint.sh [max_init_retry_times] # fps_hal service prop fps_svc_prop='init.svc.vendor.fps_hal' # fps_hal service name fps_svc_name='vendor.fps_hal' # fps_hal service init retry count init_retry_count_prop='vendor.fps.init_retry.count' # fps_hal service init succeed init_succeed_prop='vendor.fps.init.succeed' # Define maximum init retry times as default 10 max_times=10 # Deal with the input parameter if [ "$#" -ge 1 ]; then # Check is it positive number or not # If so, then set maximum times as $1 # If not, $max_times keeps in default value if [ "$1" -eq "$1" ] && [ "$1" -gt 0 ]; then max_times=$1 echo $max_times fi fi # fps_hal service init retry count init_retry_count=0 while [ "$init_retry_count" -le "$max_times" ] do # debouncing time for init processing sleep 5 # Get fps_hal service state and count init retry times fps_svc_state=$(getprop $fps_svc_prop) if [ "$fps_svc_state" == "stopped" ]; then if [ "$init_retry_count" -lt "$max_times" ]; then init_retry_count=$((init_retry_count+1)) setprop $init_retry_count_prop $init_retry_count setprop $init_succeed_prop false start $fps_svc_name else break; fi elif [ "$fps_svc_state" == "running" ]; then setprop $init_succeed_prop true break fi done