| #!/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 |