pstar: sepolicy: Rework policies for moto services

* Avoid direct access to kmsg for logging purpose.
 * Load touchscreen driver on early-init for labelling its sysfs nodes.

Change-Id: I7bb86c270d81dbd6f4bdc66e78ac77e44b61e708
This commit is contained in:
dianlujitao 2022-01-26 18:18:28 +08:00 committed by SGCMarkus
parent d67e4dc224
commit b76c7be1db
3 changed files with 28 additions and 29 deletions

View File

@ -14,8 +14,8 @@
script_name=${0##*/} script_name=${0##*/}
script_name=${script_name%.*} script_name=${script_name%.*}
function log { function notice {
echo "$script_name: $*" > /dev/kmsg log -t "$scriptname" -i "$*"
} }
persist_fps_id=/mnt/vendor/persist/fps/vendor_id persist_fps_id=/mnt/vendor/persist/fps/vendor_id
@ -31,27 +31,27 @@ function ident_fps {
log "- install FPC driver" log "- install FPC driver"
insmod /vendor/lib/modules/fpc1020_mmi.ko insmod /vendor/lib/modules/fpc1020_mmi.ko
sleep 1 sleep 1
log "- identify FPC sensor" notice "- identify FPC sensor"
setprop $PROP_FPS_IDENT "" setprop $PROP_FPS_IDENT ""
start fpc_ident start fpc_ident
for i in $(seq 1 $MAX_TIMES) for i in $(seq 1 $MAX_TIMES)
do do
sleep 0.1 sleep 0.1
ident_status=$(getprop $PROP_FPS_IDENT) ident_status=$(getprop $PROP_FPS_IDENT)
log "-result : $ident_status" notice "-result : $ident_status"
if [ $ident_status == $FPS_VENDOR_FPC ]; then if [ $ident_status == $FPS_VENDOR_FPC ]; then
log "ok" log "ok"
echo $FPS_VENDOR_FPC > $persist_fps_id echo $FPS_VENDOR_FPC > $persist_fps_id
return 0 return 0
elif [ $ident_status == $FPS_VENDOR_NONE ]; then elif [ $ident_status == $FPS_VENDOR_NONE ]; then
log "fail" notice "fail"
log "- unload FPC driver" notice "- unload FPC driver"
rmmod fpc1020_mmi rmmod fpc1020_mmi
break break
fi fi
done done
log "- install Goodix driver" notice "- install Goodix driver"
insmod /vendor/lib/modules/goodix_fod_mmi.ko insmod /vendor/lib/modules/goodix_fod_mmi.ko
echo $FPS_VENDOR_GOODIX > $persist_fps_id echo $FPS_VENDOR_GOODIX > $persist_fps_id
return 0 return 0
@ -66,16 +66,16 @@ fps_vendor=$(cat $persist_fps_id)
if [ -z $fps_vendor ]; then if [ -z $fps_vendor ]; then
fps_vendor=$FPS_VENDOR_NONE fps_vendor=$FPS_VENDOR_NONE
fi fi
log "FPS vendor: $fps_vendor" notice "FPS vendor: $fps_vendor"
if [ $fps_vendor == $FPS_VENDOR_GOODIX ]; then if [ $fps_vendor == $FPS_VENDOR_GOODIX ]; then
log "- install Goodix driver" notice "- install Goodix driver"
insmod /vendor/lib/modules/goodix_fod_mmi.ko insmod /vendor/lib/modules/goodix_fod_mmi.ko
return $? return $?
fi fi
if [ $fps_vendor == $FPS_VENDOR_FPC ]; then if [ $fps_vendor == $FPS_VENDOR_FPC ]; then
log "- install FPC driver" notice "- install FPC driver"
insmod /vendor/lib/modules/fpc1020_mmi.ko insmod /vendor/lib/modules/fpc1020_mmi.ko
return $? return $?
fi fi

View File

@ -10,8 +10,8 @@
script_name=${0##*/} script_name=${0##*/}
script_name=${script_name%.*} script_name=${script_name%.*}
function log { function notice {
echo "$script_name: $*" > /dev/kmsg log -t "$scriptname" -i "$*"
} }
persist_fps_id=/mnt/vendor/persist/fps/vendor_id persist_fps_id=/mnt/vendor/persist/fps/vendor_id
@ -19,7 +19,7 @@ persist_fps_id2=/mnt/vendor/persist/fps/last_vendor_id
MAX_TIMES=100 MAX_TIMES=100
if [ ! -f $persist_fps_id ]; then if [ ! -f $persist_fps_id ]; then
log "warn: no associated persist file found" notice "warn: no associated persist file found"
return -1 return -1
fi fi
FPS_VENDOR_NONE=none FPS_VENDOR_NONE=none
@ -36,15 +36,15 @@ fps_vendor2=$(cat $persist_fps_id2)
if [ -z $fps_vendor2 ]; then if [ -z $fps_vendor2 ]; then
fps_vendor2=$FPS_VENDOR_NONE fps_vendor2=$FPS_VENDOR_NONE
fi fi
log "FPS vendor (last): $fps_vendor2" notice "FPS vendor (last): $fps_vendor2"
fps_vendor=$(cat $persist_fps_id) fps_vendor=$(cat $persist_fps_id)
if [ -z $fps_vendor ]; then if [ -z $fps_vendor ]; then
fps_vendor=$FPS_VENDOR_NONE fps_vendor=$FPS_VENDOR_NONE
fi fi
log "FPS vendor: $fps_vendor" notice "FPS vendor: $fps_vendor"
if [ $fps_vendor == $FPS_STATUS_NONE ]; then if [ $fps_vendor == $FPS_STATUS_NONE ]; then
log "warn: boot as the last FPS" notice "warn: boot as the last FPS"
fps=$fps_vendor2 fps=$fps_vendor2
else else
fps=$fps_vendor fps=$fps_vendor
@ -55,35 +55,35 @@ do
setprop $prop_fps_status $FPS_STATUS_NONE setprop $prop_fps_status $FPS_STATUS_NONE
if [ $fps == $FPS_VENDOR_FPC ]; then if [ $fps == $FPS_VENDOR_FPC ]; then
log "start fps_hal" notice "start fps_hal"
start fps_hal start fps_hal
else else
log "start goodix_hal" notice "start goodix_hal"
start goodix_hal start goodix_hal
fi fi
log "wait for HAL finish ..." notice "wait for HAL finish ..."
fps_status=$(getprop $prop_fps_status) fps_status=$(getprop $prop_fps_status)
for ii in $(seq 1 $MAX_TIMES) for ii in $(seq 1 $MAX_TIMES)
do do
# log "check fps vendor status: $fps_status" # notice "check fps vendor status: $fps_status"
if [ $fps_status != $FPS_STATUS_NONE ]; then if [ $fps_status != $FPS_STATUS_NONE ]; then
break break
fi fi
sleep 0.2 sleep 0.2
fps_status=$(getprop $prop_fps_status) fps_status=$(getprop $prop_fps_status)
done done
log "fingerprint HAL status: $fps_status" notice "fingerprint HAL status: $fps_status"
if [ $fps_status == $FPS_STATUS_OK ]; then if [ $fps_status == $FPS_STATUS_OK ]; then
log "HAL success" notice "HAL success"
setprop $prop_persist_fps $fps setprop $prop_persist_fps $fps
if [ $fps_vendor2 == $fps ]; then if [ $fps_vendor2 == $fps ]; then
return 0 return 0
fi fi
log "- update FPS vendor (last)" notice "- update FPS vendor (last)"
echo $fps > $persist_fps_id2 echo $fps > $persist_fps_id2
log "- done" notice "- done"
return 0 return 0
fi fi
@ -103,11 +103,11 @@ if [ $fps == $fps_vendor2 ]; then
insmod /vendor/lib/modules/fpc1020_mmi.ko insmod /vendor/lib/modules/fpc1020_mmi.ko
fps=$FPS_VENDOR_FPC fps=$FPS_VENDOR_FPC
fi fi
log "- update FPS vendor" notice "- update FPS vendor"
echo $fps > $persist_fps_id echo $fps > $persist_fps_id
sleep 1 sleep 1
else else
log "error: HAL fail unload ko" notice "error: HAL fail unload ko"
if [ $fps == $FPS_VENDOR_FPC ]; then if [ $fps == $FPS_VENDOR_FPC ]; then
rmmod fpc1020_mmi rmmod fpc1020_mmi
else else
@ -116,7 +116,7 @@ else
setprop $prop_persist_fps $FPS_VENDOR_NONE setprop $prop_persist_fps $FPS_VENDOR_NONE
echo $FPS_VENDOR_NONE > $persist_fps_id echo $FPS_VENDOR_NONE > $persist_fps_id
log "- done" notice "- done"
return 1 return 1
fi fi

View File

@ -5,6 +5,7 @@ import /vendor/etc/init/hw/init.vendor.st21nfc.rc
on early-init on early-init
setprop ro.vendor.device_edition ${ro.boot.edition} setprop ro.vendor.device_edition ${ro.boot.edition}
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules qpnp-smbcharger-mmi qpnp_adaptive_charge exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules qpnp-smbcharger-mmi qpnp_adaptive_charge
exec u:r:vendor_modprove:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules touchscreen_mmi.ko stmicro_mmi.ko
on mmi-priority on mmi-priority
# Only high priority MMI DLKMs loaded here # Only high priority MMI DLKMs loaded here
@ -30,8 +31,6 @@ on fs
insmod /vendor/lib/modules/tzlog_dump.ko insmod /vendor/lib/modules/tzlog_dump.ko
insmod /vendor/lib/modules/watchdog_cpu_ctx.ko insmod /vendor/lib/modules/watchdog_cpu_ctx.ko
insmod /vendor/lib/modules/mmi_relay.ko insmod /vendor/lib/modules/mmi_relay.ko
insmod /vendor/lib/modules/touchscreen_mmi.ko
insmod /vendor/lib/modules/stmicro_mmi.ko
insmod /vendor/lib/modules/sx937x_sar.ko insmod /vendor/lib/modules/sx937x_sar.ko
insmod /vendor/lib/modules/st21nfc.ko insmod /vendor/lib/modules/st21nfc.ko
insmod /vendor/lib/modules/stmvl53l1.ko insmod /vendor/lib/modules/stmvl53l1.ko