# Copyright (C) 2016 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.

# This file is generated by device/common/generate-blob-lists.sh - DO NOT EDIT

/system/bin/ATFWD-daemon
/system/bin/athdiag
/system/bin/btnvtool
/system/bin/cnd
/system/bin/cnss-daemon
/system/bin/cnss_diag
/system/bin/diag_klog
/system/bin/diag_mdlog
/system/bin/diag_qshrink4_daemon
/system/bin/fingerprintd
/system/bin/hal_proxy_daemon
/system/bin/halutil
/system/bin/imsdatadaemon
/system/bin/imsqmidaemon
/system/bin/ims_rtp_daemon
/system/bin/irsc_util
/system/bin/location-mq
/system/bin/loc_launcher
/system/bin/lowi-server
/system/bin/msm_irqbalance
/system/bin/netmgrd
/system/bin/nl_listener
/system/bin/perfd
/system/bin/pktlogconf
/system/bin/PktRspTest
/system/bin/pm-proxy
/system/bin/pm-service
/system/bin/port-bridge
/system/bin/qmakernote-xtract
/system/bin/qmi-framework-tests/check_system_health
/system/bin/qmi-framework-tests/qmi_ping_clnt_test_0000
/system/bin/qmi-framework-tests/qmi_ping_clnt_test_0001
/system/bin/qmi-framework-tests/qmi_ping_clnt_test_1000
/system/bin/qmi-framework-tests/qmi_ping_clnt_test_1001
/system/bin/qmi-framework-tests/qmi_ping_clnt_test_2000
/system/bin/qmi-framework-tests/qmi_ping_svc
/system/bin/qmi-framework-tests/qmi_ping_test
/system/bin/qmi-framework-tests/qmi_test_mt_client_init_instance
/system/bin/qmi-framework-tests/qmi_test_service_clnt_test_0000
/system/bin/qmi-framework-tests/qmi_test_service_clnt_test_0001
/system/bin/qmi-framework-tests/qmi_test_service_clnt_test_1000
/system/bin/qmi-framework-tests/qmi_test_service_clnt_test_1001
/system/bin/qmi-framework-tests/qmi_test_service_clnt_test_2000
/system/bin/qmi-framework-tests/qmi_test_service_test
/system/bin/qmi_simple_ril_test
/system/bin/qmuxd
/system/bin/radish
/system/bin/reserveblocks
/system/bin/rmt_storage
/system/bin/rundiag
/system/bin/subsystem_ramdump
/system/bin/test_diag
/system/bin/thermal-engine
/system/bin/time_daemon
/system/bin/wcnss_filter
/system/etc/acdbdata/MTP/MTP_Bluetooth_cal.acdb
/system/etc/acdbdata/MTP/MTP_General_cal.acdb
/system/etc/acdbdata/MTP/MTP_Global_cal.acdb
/system/etc/acdbdata/MTP/MTP_Handset_cal.acdb
/system/etc/acdbdata/MTP/MTP_Hdmi_cal.acdb
/system/etc/acdbdata/MTP/MTP_Headset_cal.acdb
/system/etc/acdbdata/MTP/MTP_Speaker_cal.acdb
/system/etc/cne/profile.txt
/system/etc/data/dsi_config.xml
/system/etc/data/netmgr_config.xml
/system/etc/data/qmi_config.xml
/system/etc/diag/Bullhead_radio-general.cfg
/system/etc/diag/ims_epdg.cfg
/system/etc/diag/wlan.cfg
/system/etc/flp.conf
/system/etc/izat.conf
/system/etc/lowi.conf
/system/etc/permissions/cneapiclient.xml
/system/etc/permissions/embms.xml
/system/etc/permissions/qcrilhook.xml
/system/etc/permissions/qti_permissions.xml
/system/etc/permissions/rcsservice.xml
/system/etc/qcril.db
/system/etc/qmi_fw.conf
/system/etc/sap.conf
/system/etc/thermal-engine-8992.conf
/system/framework/cneapiclient.jar
/system/framework/embmslibrary.jar
/system/framework/qcrilhook.jar
/system/framework/rcsimssettings.jar
/system/framework/rcsservice.jar
/system/lib64/hw/fingerprint.bullhead.so
/system/lib64/hw/gps.msm8992.so
/system/lib64/lib_fpc_tac_shared.so
/system/lib64/libgps.utils.so
/system/lib64/libiperf.so
/system/lib64/libloc_core.so
/system/lib64/libloc_eng.so
/system/lib64/libwifi-hal-qcom.so
/system/lib/hw/fingerprint.bullhead.so
/system/lib/hw/gps.msm8992.so
/system/lib/lib_fpc_tac_shared.so
/system/lib/libgps.utils.so
/system/lib/libiperf.so
/system/lib/libloc_core.so
/system/lib/libloc_eng.so
/system/lib/libwifi-hal-qcom.so
/system/xbin/iperf3
/IMAGES/vendor.img
