# Panther specific init.rc
import /vendor/etc/init/hw/init.gs201.rc
import /vendor/etc/init/hw/init.pantah.rc

on late-init && property:vendor.device.modules.ready=1
    # Start the twoshay touch service
    start twoshay

# Toggle glove_mode according to touch_sensitivity_mode
on property:persist.vendor.touch_sensitivity_mode=0 && property:sys.boot_completed=1
    write /proc/focaltech_touch/high_sensitivity 0

on property:persist.vendor.touch_sensitivity_mode=1 && property:sys.boot_completed=1
    write /proc/focaltech_touch/high_sensitivity 1

# For Japan sku, always enforce camera shutter sound
# Since this property is read by the audio server in system service,
# it should be written by the system init.
on property:ro.boot.hardware.sku=G03Z5
    setprop audio.camerasound.force true
