# 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/rmt_storage
/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_api_v02.so
/system/lib64/libloc_core.so
/system/lib64/libloc_ds_api.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_api_v02.so
/system/lib/libloc_core.so
/system/lib/libloc_ds_api.so
/system/lib/libloc_eng.so
/system/lib/libwifi-hal-qcom.so
/system/xbin/iperf3
/IMAGES/vendor.img
