[Nexus 5 General] crazycaveman:
Here are some flashable zips I've created to check your system partition and optionally replace any files with their stock counterparts. This is particularly useful for preparing your phone for an OTA (when you get those annoying error messages that say "{APP} has unexpected contents"). You'll need to flash the zip for your specific version of Android. You can flash this as many times as you want and can flash the OTA directly after flashing this.

You need a custom recovery to flash these! For the Lollipop OTA, after flashing the correct check/fix zip, you will need to flash the stock recovery in order to install the OTA!

KTU84P to LRX21O

Just check your system files

File: system_check_hammerhead_lrx21o-from-ktu84p.zip
[url=http://goo.gl/ooEpTy]Google Drive[/url]
[url=http://goo.gl/HPxP9O]MEGA[/url]
MD5: 10e436b5d4042145b3789ee9b9fcecb5
Size: 267 kb

Check and fix your system files:

File: system_fixer_hammerhead_lrx21o-from-ktu84p.zip
[url=http://goo.gl/mFfusU]Google Drive[/url]
[URL=http://goo.gl/VA9tuo]MEGA[/URL]
MD5: 2ae0f21d76429538f4ae854da67f5857
Size: 153 mb

KTU84M to KTU84P

Just check your system files:

File: system_check_hammerhead_ktu84m.zip
[url=http://goo.gl/ESNUH0]Google Drive[/url]
[url=http://goo.gl/fYKyvn]MEGA[/url]
MD5: 79b54a842debb992d0ef03eb2d7bc661
Size: 192 kb

Check and fix your system files:

File: system_fixer_hammerhead_ktu84m.zip
[url=http://goo.gl/sZsjz4]Google Drive[/url]
[url=http://goo.gl/1z732L]MEGA[/url]
MD5: a80331b5406042e2212fa0fe3bfeaa30
Size: 244 mb

KOT49H to KTU84M

File: check_hammerhead_kot49h_system.zip
[url=http://goo.gl/xLlREk]Google Drive[/url]
[url=http://goo.gl/lNRLlk]MEGA[/url]
MD5: 3a810e0d67e2f7b17af947a9c46664ec
Size: 402 MB
If you want to check the updater-script that is in the zip file without downloading the whole thing, [url=http://pastebin.com/kUAimyYK]I've made a paste for easy access.[/url]

Standard disclaimer: I am not to be held responsible if this messes up your phone in any way. Make sure you have backed up your phone and have backups of your backups. I created it for myself and figured I'd share what I created to benefit others. Just because it works for me does not mean it will work for you. If an alien pops out of your phone or it suddenly implodes or you lose everything on it and have no backups is not my problem.

For those of you who are interested in how I generated this, you'll find the script I created to generate the file below.

System checker script (not for the faint of heart!):

If you want to run this to create the zip file yourself, you'll need a zip file of the system directory for the version you're upgrading from and the OTA zip. I'm sure there's a better way to do all this, but this is what my convoluted mind gave me...

Call the script as (2nd argument is optional) ${0} OTA.zip [system_files.zip]

#!/bin/bash
# This requires 1 argument: the update zip filename
# Also accepts 1 optional argument: system files zip filesname

update_zip=$1
if [ -z ${update_zip} ]; then
echo "Need to let me know the name of the ota zip file!"
exit 1
fi
extract_dir=/tmp/update_zip_check
update_dir="META-INF/com/google/android"
eval $(echo ${update_zip} | sed 's!\([^\.]*\)\.signed-\([^-]*\)-\([^-]*\)-from-\([^\.]*\).*!update_hash=\1\nhw_name=\2\nnew_ver=$(echo \3 | tr [A-Z] [a-z])\ncurr_ver=$(echo \4 | tr [A-Z] [a-z])!')
system_zip=${2:-$(ls system*${hw_name}*${curr_ver}.zip)}
fixer_zip="system_fixer_${hw_name}_${new_ver}-from-${curr_ver}.zip"
check_zip="system_check_${hw_name}_${new_ver}-from-${curr_ver}.zip"

echo -e "\n\n${update_hash}\n${hw_name}\n${new_ver}\n${curr_ver}\n${system_zip}\n${check_zip}"
sha1sum -c <<EOF
${update_hash} ${update_zip}
EOF
if [ $? != 0 ]; then
echo "${update_zip} doesn't match hash; please re-download"
exit 255
fi
[ -d "${extract_dir}" ] && rm -rf "${extract_dir}"
mkdir "${extract_dir}"

echo "Updating updater-script for checking and replacing files."
unzip -q -d "${extract_dir}" "${update_zip}" "${update_dir}/update-binary" "${update_dir}/updater-script"

# The following was the old way of updating files
#unzip -q "${system_zip}" $(grep -e 'mount' -e 'getprop' -e 'assert(apply_patch_check(' -e 'assert(apply_patch_space(' ${extract_dir}/${update_dir}/updater-script | sed 's|^assert(\(apply_patch_check("/\)\([^"]*\)\(.*")\));|ifelse(\1\2\3, "", (package_extract_file("\2", "/\2"); ui_print("\/\2")));|' | tee -i ${extract_dir}/${update_dir}/updater-script_check | grep -e 'ifelse' | sed 's|^ifelse(apply_patch_check("/system/\([^"]*\)".*|\1|') -d ${extract_dir}

unzip -q -d "${extract_dir}" "${system_zip}" $(grep -e 'mount' -e 'getprop' -e '^apply_patch_check(' -e '^apply_patch_space(' ${extract_dir}/${update_dir}/updater-script | sed 's!^\(apply_patch_.*\) || abort("\\"/system/\(.*\)\\" .*);$!\1 || (ui_print("Need to fix /system/\2"); package_extract_file("\2", "/system/\2"));!' | sed 's!^\(apply_patch_check.*\) || abort("\\"\(EMMC:/dev/block/platform/.*/by-name/boot\).*);$!\1 || (ui_print("Flash boot partition"); package_extract_file("boot.img", "\2"));!' | sed 's!abort!ui_print!' | tee -i ${extract_dir}/${update_dir}/updater-script_fixer | grep -e '^apply_patch_check("/' | sed 's!^apply_patch_check("/system/\([^"]*\)".*!\1!')
sed 's!; package_extract_file([^)]*)!!' ${extract_dir}/${update_dir}/updater-script_fixer >${extract_dir}/${update_dir}/updater-script_check

mv "${extract_dir}/${update_dir}/updater-script_fixer" "${extract_dir}/${update_dir}/updater-script"
cur_dir="$(/bin/pwd)"
cd "${extract_dir}"
echo "Now creating the zip file for flashing."
zip -qr "${cur_dir}/${fixer_zip}" *

mv "${extract_dir}/${update_dir}/updater-script_check" "${extract_dir}/${update_dir}/updater-script"
zip -qr "${cur_dir}/${check_zip}" META-INF

cd "${cur_dir}"
rm -rf "${extract_dir}"
echo 'Done! Please remember to backup any APKs you have replaced on the /system partition of your device; this file will replace with the stock version for your build.'