# 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/cnd
/system/bin/cnss-daemon
/system/bin/cnss_diag
/system/bin/diag_klog
/system/bin/diag_mdlog
/system/bin/diag_qshrink4_daemon
/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/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/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/gps.msm8992.so
/system/lib64/libgps.utils.so
/system/lib64/libiperf.so
/system/lib/hw/gps.msm8992.so
/system/lib/libgps.utils.so
/system/lib/libiperf.so
/system/xbin/iperf3
/IMAGES/vendor.img
