# Copyright (C) 2011 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/bridgemgrd
/system/bin/btnvtool
/system/bin/diag_klog
/system/bin/diag_mdlog
/system/bin/ds_fmc_appd
/system/bin/efsks
/system/bin/hci_qcomm_init
/system/bin/ks
/system/bin/mm-audio-send-cal
/system/bin/mpdecision
/system/bin/netmgrd
/system/bin/nl_listener
/system/bin/port-bridge
/system/bin/qcks
/system/bin/qmuxd
/system/bin/qseecomd
/system/bin/radish
/system/bin/rmt_storage
/system/bin/sensors.qcom
/system/bin/thermald
/system/bin/usbhub
/system/bin/usbhub_init
/system/etc/firmware/vidc_1080p.fw
/system/etc/firmware/wcd9310/wcd9310_anc.bin
/system/etc/firmware/wcd9310/wcd9310_mbhc.bin
/system/lib/egl/eglsubAndroid.so
/system/lib/egl/libEGL_adreno200.so
/system/lib/egl/libGLESv1_CM_adreno200.so
/system/lib/egl/libGLESv2_adreno200.so
/system/lib/hw/gps.msm8960.so
/system/lib/hw/sensors.msm8960.so
/system/lib/libacdbloader.so
/system/lib/libaudcal.so
/system/lib/libaudioalsa.so
/system/lib/libaudioparsers.so
/system/lib/libC2D2.so
/system/lib/libc2d2_a3xx.so
/system/lib/libCommandSvc.so
/system/lib/libconfigdb.so
/system/lib/libcsd-client.so
/system/lib/libdiag.so
/system/lib/libdrmdiag.so
/system/lib/libdrmfs.so
/system/lib/libdrmtime.so
/system/lib/libdsi_netctrl.so
/system/lib/libdsprofile.so
/system/lib/libdss.so
/system/lib/libdsucsd.so
/system/lib/libdsutils.so
/system/lib/libgemini.so
/system/lib/libgsl.so
/system/lib/libI420colorconvert.so
/system/lib/libidl.so
/system/lib/libimage-jpeg-enc-omx-comp.so
/system/lib/libimage-omx-common.so
/system/lib/libllvm-a3xx.so
/system/lib/libloc_adapter.so
/system/lib/libloc_api_v02.so
/system/lib/libloc_eng.so
/system/lib/libmercury.so
/system/lib/libmm-color-convertor.so
/system/lib/libmmcamera_faceproc.so
/system/lib/libmmipl.so
/system/lib/libmmjpeg.so
/system/lib/libmmjps.so
/system/lib/libmmmpo.so
/system/lib/libmmmpod.so
/system/lib/libmmstillomx.so
/system/lib/libnetmgr.so
/system/lib/libOmxAacDec.so
/system/lib/libOmxWmaDec.so
/system/lib/libqcci_legacy.so
/system/lib/libqdi.so
/system/lib/libqdp.so
/system/lib/libqmi.so
/system/lib/libqmiservices.so
/system/lib/libqmi_cci.so
/system/lib/libqmi_client_qmux.so
/system/lib/libqmi_common_so.so
/system/lib/libqmi_csi.so
/system/lib/libqmi_csvt_srvc.so
/system/lib/libqmi_encdec.so
/system/lib/libQSEEComAPI.so
/system/lib/libril-qc-qmi-1.so
/system/lib/libril-qcril-hook-oem.so
/system/lib/libsc-a3xx.so
/system/lib/libsensor1.so
/system/lib/libsensor_reg.so
/system/lib/libsensor_user_cal.so
/system/lib/libxml.so
/system/lib/lib_dlb_msd.so
/system/vendor/firmware/a300_pfp.fw
/system/vendor/firmware/a300_pm4.fw
