# 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/vendor/firmware/bcm2079x_firmware.ncd
/system/vendor/firmware/bcm2079x_pre_firmware.ncd
/system/vendor/firmware/bcm43241.hcd
/system/vendor/firmware/es305_fw.bin
/system/vendor/firmware/fimc_is_fw.bin
/system/vendor/firmware/fimc_is_fw2.bin
/system/vendor/firmware/maxtouch.fw
/system/vendor/firmware/mfc_fw.bin
/system/vendor/firmware/setfile.bin
/system/vendor/firmware/setfile_4e5.bin
/system/vendor/firmware/setfile_6a3.bin
/system/vendor/lib/egl/libGLES_mali.so
/system/vendor/lib/libbccArm.sha1.so
/system/vendor/lib/libbccArm.so
/system/vendor/lib/libbcinfoArm.so
/system/vendor/lib/libclcoreArm.bc
/system/vendor/lib/libclcore_neonArm.bc
/system/vendor/lib/libdrmdecrypt.so
/system/vendor/lib/libRSDriverArm.so
/system/vendor/secapp/00060308060501020000000000000000.tlbin
/system/vendor/secapp/020a0000000000000000000000000000.drbin
/system/vendor/secapp/07060000000000000000000000000000.tlbin
