1 #!/vendor/bin/sh 2 # /vendor/bin/init.fingerprint.sh [max_init_retry_times] 3 4 # fps_hal service prop 5 fps_svc_prop='init.svc.vendor.fps_hal' 6 # fps_hal service name 7 fps_svc_name='vendor.fps_hal' 8 # fps_hal service init retry count 9 init_retry_count_prop='vendor.fps.init_retry.count' 10 # fps_hal service init succeed 11 init_succeed_prop='vendor.fps.init.succeed' 12 # Define maximum init retry times as default 10 13 max_times=10 14 15 # Deal with the input parameter 16 if [ "$#" -ge 1 ]; then 17 # Check is it positive number or not 18 # If so, then set maximum times as $1 19 # If not, $max_times keeps in default value 20 if [ "$1" -eq "$1" ] && [ "$1" -gt 0 ]; then 21 max_times=$1 22 echo $max_times 23 fi 24 fi 25 26 # fps_hal service init retry count 27 init_retry_count=0 28 29 while [ "$init_retry_count" -le "$max_times" ] 30 do 31 # debouncing time for init processing 32 sleep 5 33 # Get fps_hal service state and count init retry times 34 fps_svc_state=$(getprop $fps_svc_prop) 35 if [ "$fps_svc_state" == "stopped" ]; then 36 if [ "$init_retry_count" -lt "$max_times" ]; then 37 init_retry_count=$((init_retry_count+1)) 38 setprop $init_retry_count_prop $init_retry_count 39 setprop $init_succeed_prop false 40 start $fps_svc_name 41 else 42 break; 43 fi 44 elif [ "$fps_svc_state" == "running" ]; then 45 setprop $init_succeed_prop true 46 break 47 fi 48 done 49