# 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/diag_qshrink4_daemon
/system/bin/halutil
/system/bin/mm-audio-alsa-test
/system/bin/PktRspTest
/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/ssr_setup
/system/bin/subsystem_ramdump
/system/bin/test_diag
/system/etc/diag/Angler_Radio-general.cfg
/system/etc/permissions/cneapiclient.xml
/system/etc/permissions/embms.xml
/system/etc/permissions/qcrilhook.xml
/system/etc/permissions/rcsservice.xml
/system/framework/embmslibrary.jar
/system/framework/qcrilhook.jar
/system/lib64/libiperf.so
/system/lib64/libtinyxml.so
/system/lib/libiperf.so
/system/lib/libmm-qcamera.so
/system/lib/libtinyxml.so
/system/xbin/iperf3
/IMAGES/vendor.img
