#
# Copyright (C) 2018 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# The modem image is mounted at /vendor/firmware_mnt
firmware_directories /vendor/firmware_mnt/image/

# the DIAG device node is not world writable/readable.
/dev/diag                 0660   system     diag

/dev/wlan                 0666   system     system
/dev/kgsl-3d0             0666   system     system
/dev/ion                  0664   system     system
/dev/rtc0                 0660   system     system
/dev/smd7                 0660   bluetooth  bluetooth
/dev/ipa                  0660   system     radio
/dev/wwan_ioctl           0660   system     radio
/dev/ipaNatTable          0660   system     radio
/dev/rmnet_ctrl           0660   usb        usb
/dev/ipa_odl_ctl          0660   radio      radio
/dev/ipa_adpl             0660   system     oem_2905

#permissions for CSVT
/dev/smd11                0660   radio      radio

/dev/smdcntl8             0640   radio      radio
/dev/at_usb0              0640   radio      radio
/dev/at_mdm0              0640   radio      radio

/dev/video*               0660   system     camera
/dev/media*               0660   system     camera
/dev/v4l-subdev*          0660   system     camera

/dev/qce                  0660   system     drmrpc
/dev/qseecom              0660   system     drmrpc
/dev/qsee_ipc_irq_spss    0660   system     drmrpc
/dev/seemplog             0660   system     system
/dev/spcom                0660   system     system
/dev/sp_kernel            0660   system     system
/dev/sp_ssr               0660   system     system
/dev/sp_keymaster         0660   system     system
/dev/sec_nvm_*            0660   system     system

/dev/jpeg0                0660   system     camera
/dev/adsprpc-smd          0664   system     system
/dev/adsprpc-smd-secure   0644   system     system

/dev/sdsprpc-smd          0660   system     system

/dev/wcd-dsp-glink        0660   system     audio
/dev/wcd_dsp0_control     0660   system     audio
/dev/wcd-spi-ac-client    0660   system     audio
/dev/iaxxx-odsp-celldrv   0660   system     audio
/dev/tunnel0              0660   system     audio
/dev/crashdump            0660   system     audio
/dev/regdump              0660   system     audio

/dev/msm_qcelp            0660   system     audio
/dev/msm_evrc             0660   system     audio
/dev/msm_wma              0660   system     audio
/dev/msm_wmapro           0660   system     audio
/dev/msm_alac             0660   system     audio
/dev/msm_ape              0660   system     audio
/dev/msm_amrnb            0660   system     audio
/dev/msm_amrwb            0660   system     audio
/dev/msm_amrwbplus        0660   system     audio
/dev/msm_aac              0660   system     audio
/dev/msm_mp3*             0660   system     audio
/dev/msm_multi_aac        0660   system     audio
/dev/msm_aac_in           0660   system     audio
/dev/msm_qcelp_in         0660   system     audio
/dev/msm_evrc_in          0660   system     audio
/dev/msm_amrnb_in         0640   system     audio
/dev/msm_a2dp_in          0660   system     audio
/dev/msm_ac3              0660   system     audio
/dev/msm_audio_cal        0660   system     audio
/dev/msm_hweffects        0660   system     audio
/dev/msm_rtac             0660   system     audio
/dev/msm_cirrus_playback  0660   system     audio

/dev/i2c-5                0660   media      media
/dev/avtimer              0660   system     audio

/dev/uio0                 0660   system     system
/dev/uio1                 0660   system     system

# SSR devices
/dev/subsys_*             0640   system     system

# Ramdump devices
/dev/ramdump_*            0640   system     system

# Citadel
/dev/citadel0             0660    hsm         hsm

# Storage: for factory reset protection feature
/dev/block/platform/soc/1d84000.ufshc/by-name/frp       0660   system     system

# fuel gauge history
/dev/maxfg_history        0644   system system

# BT
/dev/ttyMSM0              0600   bluetooth  bluetooth
/dev/ttyHS0               0660   bluetooth  net_bt
/dev/btpower              0660   bluetooth  net_bt

# NFC
/dev/st21nfc              0660   nfc    nfc

#eSE device
/dev/st54j_se             0660   secure_element secure_element

# Airbrush
/dev/ab_sm                0600   vendor_airbrush vendor_airbrush

# TPU
/dev/abc-pcie-tpu_0       0660   system system

# Face Authentication
/dev/faceauth             0660   system system

# IPU
/dev/ipu                  0666   cameraserver camera

# AB DRAM
/dev/ab-dram              0666   cameraserver camera

# ABC PCIE DMA
/dev/abc-pcie-dma         0666   cameraserver camera

# Resume-on-Reboot
/dev/access-kregistry     0660   system system

# Input
/sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.2.auto/usb1/1-1/*/*/leds/* brightness 0660 system system
/sys/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.2.auto/usb1/1-1/*/*/leds/* multi_intensity 0660 system system

# pixelstats
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,usb-pdphy@1700/usbpd0/typec/port0/port0-partner identity/id_header 0444 system system
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,usb-pdphy@1700/usbpd0/typec/port0/port0-partner identity/product 0444 system system
