# 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/app/MotoLocationProxy.apk
/system/app/StingrayProgramMenu.apk
/system/app/StingrayProgramMenuSystem.apk
/system/bin/akmd2
/system/bin/batch
/system/bin/brcm_guci_drv
/system/bin/bugtogo.sh
/system/bin/ftmipcd
/system/bin/location
/system/bin/tcmd
/system/etc/cpcap_gain.bin
/system/etc/firmware/bcm4329.hcd
/system/etc/firmware/nvddk_audiofx_core.axf
/system/etc/firmware/nvddk_audiofx_transport.axf
/system/etc/firmware/nvmm_aacdec.axf
/system/etc/firmware/nvmm_adtsdec.axf
/system/etc/firmware/nvmm_audiomixer.axf
/system/etc/firmware/nvmm_h264dec.axf
/system/etc/firmware/nvmm_jpegdec.axf
/system/etc/firmware/nvmm_jpegenc.axf
/system/etc/firmware/nvmm_manager.axf
/system/etc/firmware/nvmm_mp2dec.axf
/system/etc/firmware/nvmm_mp3dec.axf
/system/etc/firmware/nvmm_mpeg4dec.axf
/system/etc/firmware/nvmm_reference.axf
/system/etc/firmware/nvmm_service.axf
/system/etc/firmware/nvmm_sorensondec.axf
/system/etc/firmware/nvmm_sw_mp3dec.axf
/system/etc/firmware/nvmm_wavdec.axf
/system/etc/firmware/nvrm_avp.bin
/system/etc/gps.conf
/system/etc/gpsconfig.xml
/system/etc/location.cfg
/system/etc/motorola/12m/key_code_map.txt
/system/etc/motorola/12m/tcmd_leds.cfg
/system/etc/security/suplcerts.bks
/system/etc/voip_aud_params.bin
/system/etc/wifi/bcm4329.cal
/system/lib/egl/libEGL_perfhud.so
/system/lib/egl/libEGL_tegra.so
/system/lib/egl/libGLESv1_CM_perfhud.so
/system/lib/egl/libGLESv1_CM_tegra.so
/system/lib/egl/libGLESv2_perfhud.so
/system/lib/egl/libGLESv2_tegra.so
/system/lib/hw/camera.stingray.so
/system/lib/hw/gps.stingray.so
/system/lib/hw/gralloc.tegra.so
/system/lib/hw/hwcomposer.tegra.so
/system/lib/libcgdrv.so
/system/lib/libmoto_ecnswrapper.so
/system/lib/libnvddk_2d.so
/system/lib/libnvddk_2d_v2.so
/system/lib/libnvddk_audiofx.so
/system/lib/libnvdispatch_helper.so
/system/lib/libnvdispmgr_d.so
/system/lib/libnvmm.so
/system/lib/libnvmm_camera.so
/system/lib/libnvmm_contentpipe.so
/system/lib/libnvmm_image.so
/system/lib/libnvmm_manager.so
/system/lib/libnvmm_service.so
/system/lib/libnvmm_tracklist.so
/system/lib/libnvmm_utils.so
/system/lib/libnvmm_video.so
/system/lib/libnvodm_imager.so
/system/lib/libnvodm_query.so
/system/lib/libnvomx.so
/system/lib/libnvomxilclient.so
/system/lib/libnvos.so
/system/lib/libnvrm.so
/system/lib/libnvrm_channel.so
/system/lib/libnvrm_graphics.so
/system/lib/libnvsm.so
/system/lib/libnvwsi.so
/system/lib/libpkip.so
/system/lib/libstagefrighthw.so
/system/lib/libtpa.so
/system/lib/libtpa_core.so
/system/media/bootanimation-encrypted.zip
/system/media/bootanimation.zip
/system/vendor/etc/audio_effects.conf
/system/vendor/firmware/fw_bcm4329_mfg.bin
