# 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/AppDirectedSmsService.apk
/system/app/ConnMO.apk
/system/app/DMService.apk
/system/app/MotoImsServer.apk
/system/app/MotoLocationProxy.apk
/system/app/MotoLteTelephony.apk
/system/app/MotoModemUtil.apk
/system/app/MotoSimUiHelper.apk
/system/app/StingrayProgramMenu.apk
/system/app/StingrayProgramMenuSystem.apk
/system/app/UsbHelper.apk
/system/bin/akmd2
/system/bin/batch
/system/bin/brcm_guci_drv
/system/bin/bugtogo.sh
/system/bin/bypassfactory
/system/bin/ftmipcd
/system/bin/location
/system/bin/savebpver
/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/libdmengine.so
/system/lib/libdmjavaplugin.so
/system/lib/libims_client_jni.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
