hdm_status.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #! /vendor/bin/sh
  2. if [ "$#" -ne 1 ]
  3. then
  4. echo "Usage: $0 <hdm_status value>"
  5. exit
  6. fi
  7. count=0
  8. policy=0
  9. array=(1 2 4 8 16 32 64 128 256 512)
  10. name_arry=(cam mmc usb wlan bt gps dis aud cpm sen)
  11. hdm_status=$1
  12. hdm_swblock_status=$(getprop "ro.vendor.hdm.supported.swblock")
  13. echo "hdmstatus = $hdm_status"
  14. echo "hdm supported swblock = $hdm_swblock_status"
  15. HDM_STATUS_SPLIT=$(echo $hdm_status | tr "&|" "\n")
  16. #get hdm policy from ro.boot.hdm_status
  17. for split in $HDM_STATUS_SPLIT
  18. do
  19. count=$((($count + 1)%2))
  20. if [ $count -eq 0 ]; then
  21. split16="0x$split"
  22. echo "split16 = $split16"
  23. policy=$(($policy|$split16))
  24. fi
  25. done
  26. echo "$policy"
  27. hex=$(printf "0x%x" "$policy")
  28. echo "$hex"
  29. #setprop vendor.hdm.status "$hex"
  30. #check sw block
  31. swblock=$(($policy&$hdm_swblock_status))
  32. swblockhex=$(printf "0x%x" "$swblock")
  33. echo "swblockhex = $swblockhex"
  34. setprop vendor.hdm.swblock.status "$swblockhex"
  35. #start sw block
  36. count=0
  37. for isblock in ${array[@]}
  38. do
  39. if [ $(($isblock&$swblock)) -eq $isblock ]; then
  40. echo "swblock enable = ${name_arry[$count]}"
  41. swblockname=$(printf "vendor.hdm.internal.%s" "${name_arry[$count]}")
  42. setprop $swblockname "boot"
  43. fi
  44. count=$(($count + 1))
  45. done