# 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/efsks
/system/bin/ks
/system/bin/netmgrd
/system/bin/qcks
/system/bin/qmuxd
/system/bin/rmt_storage
/system/bin/sensors.qcom
/system/etc/firmware/a225_pfp.fw
/system/etc/firmware/a225_pm4.fw
/system/etc/firmware/a300_pfp.fw
/system/etc/firmware/a300_pm4.fw
/system/etc/firmware/leia_pfp_470.fw
/system/etc/firmware/vidc_1080p.fw
/system/lib/egl/eglsubAndroid.so
/system/lib/egl/libEGL_adreno200.so
/system/lib/egl/libGLESv1_CM_adreno200.so
/system/lib/egl/libGLESv2S3D_adreno200.so
/system/lib/egl/libGLESv2_adreno200.so
/system/lib/hw/sensors.msm8960.so
/system/lib/libdiag.so
/system/lib/libDiagService.so
/system/lib/libdsi_netctrl.so
/system/lib/libdsutils.so
/system/lib/libgsl.so
/system/lib/libidl.so
/system/lib/libllvm-a3xx.so
/system/lib/libnetmgr.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/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
