#
# 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/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/hw_random            0600   root       root
/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
