#!/bin/bash # set -e add_path_ifexist() { if [[ -d $1 ]]; then export PATH=$( realpath $1 ):$PATH return 0 fi return 1 } if ! which xtensa-lx106-elf-ar | grep "tools/xtensa-lx106-elf/bin" >>/dev/null; then add_path_ifexist "../../../xtensa-lx106-elf/bin" || add_path_ifexist "../../xtensa-lx106-elf/bin" fi help_msg() { cat <new.txt if [[ -f old.txt ]]; then echo "eap_peer_config_deinit: diff $prev_sdk $sdk" diff old.txt new.txt echo "" fi mv new.txt old.txt prev_sdk=${sdk} done unset prev_sdk for sdk in `list_sdks`; do unasm -j ".text.wpa2_sm_rx_eapol" ${sdk}/eap.o >new.txt if [[ -f old2.txt ]]; then echo "wpa2_sm_rx_eapol: diff $prev_sdk $sdk" diff old2.txt new.txt echo "" fi mv new.txt old2.txt prev_sdk=${sdk} done # Find offsets for patching vPortFree with z2EapFree for sdk in `list_sdks`; do echo -en "\n${sdk}/eap.o:\n " grep --byte-offset --only-matching --text vPortFree ${sdk}/eap.o done cleanup } patch_all() { for sdk in `list_sdks`; do pushd $sdk ../fix_sdk_libs.sh popd done } if [[ "${1}" == "--analyze" ]]; then analyze elif [[ "${1}" == "--patch" ]]; then patch_all else help_msg fi exit 0