# 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/btmacreader
/system/bin/glgps
/system/bin/sensors-config
/system/bin/tf_daemon
/system/etc/asound.conf
/system/etc/firmware/bcm4330.hcd
/system/etc/firmware/nvavp_os_00001000.bin
/system/etc/firmware/nvavp_os_0ff00000.bin
/system/etc/firmware/nvavp_os_e0000000.bin
/system/etc/firmware/nvavp_os_eff00000.bin
/system/etc/firmware/nvavp_vid_ucode_alt.bin
/system/etc/firmware/touch_fw.ekt
/system/etc/gps/gpsconfig.xml
/system/etc/nvcamera.conf
/system/etc/nvram.txt
/system/lib/egl/libEGL_tegra.so
/system/lib/egl/libGLESv1_CM_tegra.so
/system/lib/egl/libGLESv2_tegra.so
/system/lib/hw/camera.tegra3.so
/system/lib/hw/gps.tegra3.so
/system/lib/hw/gralloc.tegra3.so
/system/lib/hw/hwcomposer.tegra3.so
/system/lib/hw/sensors.grouper.so
/system/lib/libardrv_dynamic.so
/system/lib/libcgdrv.so
/system/lib/libdrmdecrypt.so
/system/lib/libinvensense_hal.so
/system/lib/libmllite.so
/system/lib/libmplmpu.so
/system/lib/libnvapputil.so
/system/lib/libnvasfparserhal.so
/system/lib/libnvaviparserhal.so
/system/lib/libnvavp.so
/system/lib/libnvcamerahdr.so
/system/lib/libnvddk_2d.so
/system/lib/libnvddk_2d_v2.so
/system/lib/libnvdispmgr_d.so
/system/lib/libnvmm.so
/system/lib/libnvmmlite.so
/system/lib/libnvmmlite_audio.so
/system/lib/libnvmmlite_image.so
/system/lib/libnvmmlite_utils.so
/system/lib/libnvmmlite_video.so
/system/lib/libnvmm_audio.so
/system/lib/libnvmm_camera.so
/system/lib/libnvmm_contentpipe.so
/system/lib/libnvmm_image.so
/system/lib/libnvmm_manager.so
/system/lib/libnvmm_misc.so
/system/lib/libnvmm_parser.so
/system/lib/libnvmm_service.so
/system/lib/libnvmm_utils.so
/system/lib/libnvmm_video.so
/system/lib/libnvmm_writer.so
/system/lib/libnvodm_dtvtuner.so
/system/lib/libnvodm_hdmi.so
/system/lib/libnvodm_imager.so
/system/lib/libnvodm_misc.so
/system/lib/libnvodm_query.so
/system/lib/libnvomx.so
/system/lib/libnvomxilclient.so
/system/lib/libnvos.so
/system/lib/libnvparser.so
/system/lib/libnvrm.so
/system/lib/libnvrm_graphics.so
/system/lib/libnvsm.so
/system/lib/libnvtvmr.so
/system/lib/libnvwinsys.so
/system/lib/libnvwsi.so
/system/lib/libsensors.lightsensor.so
/system/lib/libstagefrighthw.so
/system/lib/libtf_crypto_sst.so
/system/vendor/firmware/libpn544_fw.so
/system/vendor/lib/drm/libdrmwvmplugin.so
/system/vendor/lib/libwvdrm_L1.so
/system/vendor/lib/libwvm.so
/system/vendor/lib/libWVStreamControlAPI_L1.so
