Moim "chałupniczym" sposobem trafiłem na jakis skrypt. Poniżej jego treść:
post_script.sh
Kod:
#!/bin/sh
# Signal handler.
SignalTrap()
{
echo "Received signal. Update aborting."
exit 1
}
# Set Signal Trap
trap SignalTrap INT QUIT TERM ABRT STOP
interlog_status=1
function getCurrentInterlog
{
for usb in 0 1; do
for f in /fs/usb${usb}/SyncMyRide/Sync_*.xml; do
diff -q $f /fs/images/ivsu_cache/Interrogator_Log.xml > /dev/null
if [ $? -eq 0 ]; then
logfile=$f
return
fi
done
done
}
function validateData
{
log=$(<$logfile)
hsh=$(echo "$log" | openssl dgst -sha1 2>/dev/null)
#Pad MAC addresses
log=$(echo "$log" | sed -r "s/>\s*([0-9a-fA-F]{1,2}):\s*([0-9a-fA-F]{1,2}):\s*([0-9a-fA-F]{1,2}):\s*([0-9a-fA-F]{1,2}):\s*([0-9a-fA-F]{1,2}):\s*([0-9a-fA-F]{1,2})</>0\1:0\2:0\3:0\4:0\5:0\6</g" | sed -r "s/>0*([0-9a-fA-F]{2}):0*([0-9a-fA-F]{2}):0*([0-9a-fA-F]{2}):0*([0-9a-fA-F]{2}):0*([0-9a-fA-F]{2}):0*([0-9a-fA-F]{2})</>\1:\2:\3:\4:\5:\6</g")
#Strip 0xFF
log=$(echo "$log" | sed -r "s/\d255//g")
#XML element name
log=$(echo "$log" | sed -r "s/\bmodinfo\b/d2p1/g")
#Pending apps version
pendingAppsVersion=$(awk -F ' = ' '/Ford Part Number/ { print $2 }' /fs/rwdata/.Pending/*14G381*.inf 2>/dev/null)
if [ -n "$pendingAppsVersion" ]; then
log=$(echo "$log" | sed -r "s/[A-Z0-9]{4}-14G381-[A-Z0-9]+/$pendingAppsVersion/g")
fi
if [ "$hsh" != "$(echo "$log" | openssl dgst -sha1 2>/dev/null)" ]; then
echo "$log" > $logfile
echo Log validated
else
echo Log valid
fi
}
if [ -e /tmp/utloggingutility ]; then
chmod 755 /tmp/utloggingutility
# Remove previous log if MY16 only
grep -q "SYNCGen3.0_1" /fs/mp/Version.inf
if (( $? == 0 )); then
rm /fs/images/ivsu_cache/*Interrogator_Log.xml
fi
if [ ! -e /fs/images/ivsu_cache/Decoded_ODL.xml ]; then
cp /tmp/Decoded_ODL.xml /fs/images/ivsu_cache
fi
/tmp/utloggingutility interlog
interlog_status=$?
if [ $interlog_status -eq 0 ]; then
getCurrentInterlog
if [ -n "$logfile" ]; then
rm -rf /fs/usb${usb}/interlog*
validateData
else
echo "Can't locate Interrogator log"
fi
fi
else
echo "utloggingutility binary is missing\n"
fi
exit $interlog_status
Decoded_ODL.xml
http://pastebin.com/RJbwn0P2
Nie wiem czym jest plik XML, lecz sąðzę że prawdopodobnie 'Direct Configiem' dla APIM.