Skip to content

Instantly share code, notes, and snippets.

@bvanpeski
Last active September 6, 2022 11:51
Show Gist options
  • Save bvanpeski/f269e90fabb1533c9e74744739a03bf3 to your computer and use it in GitHub Desktop.
Save bvanpeski/f269e90fabb1533c9e74744739a03bf3 to your computer and use it in GitHub Desktop.
iMac:~ root# sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;'
57|2|1|0|1288412482|581460272.934065|581460272.934068||B3DE88F2-DC94-4945-98AA-4C50C655379B||Thu, 09 May 2019 07:42:00 GMT||/2019SpringFCS/patches/041-6
2031/64310B52-722D-11E9-B30B-80F709B920CB/com_apple_MobileAsset_SoftwareUpdate/1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip|
58|2|1|0|1285961624|581460407.402026|581460407.402033||09DEB32F-24E9-40E0-A5E3-4308328C7B8E||Thu, 09 May 2019 04:23:49 GMT||/2019SpringFCS/patches/041-6
1881/F7FF48A2-7210-11E9-B175-CB7460953268/com_apple_MobileAsset_SoftwareUpdate/e02c712e0c65733441e569187234174464551a13.zip|
59|2|1|0|761182374|581460449.222957|581460449.222962||68CB2CED-AFC5-4FC5-BEE2-66084E984263||Thu, 09 May 2019 04:21:49 GMT||/2019SpringFCS/patches/041-62
083/9D311380-720E-11E9-A52E-86D219A16E1B/com_apple_MobileAsset_SoftwareUpdate/56e42d6c88860533dfb8cf7ee14ce7c23e8b28d3.zip|
60|2|1|0|761127565|581460472.436604|581460472.436609||08501F1B-24CB-460E-A72C-0B60F8B3AA94||Thu, 09 May 2019 04:37:35 GMT||/2019SpringFCS/patches/041-61
865/C2760702-7210-11E9-A1F8-C6233872A822/com_apple_MobileAsset_SoftwareUpdate/88b8715c8438d1b378e404fe98b5d0bbae2f40c4.zip|
61|2|1|0|729492182|581460492.071595|581460492.071603||21D52733-39F6-4489-89A0-39680DB16846||Thu, 09 May 2019 04:26:36 GMT||/2019SpringFCS/patches/041-61
814/29B0F7C0-7210-11E9-BE00-CB4041719A72/com_apple_MobileAsset_SoftwareUpdate/b6b8ff80d610863a4281ff41837cde7d78776648.zip|
62|2|1|0|719490940|581460511.324536|581460511.324541||F8787E58-4CAA-4497-8277-A03A1B44506B||Thu, 09 May 2019 05:02:51 GMT||/2019SpringFCS/patches/041-61
517/6A95E77E-7214-11E9-BA68-E33AB729854D/com_apple_MobileAsset_SoftwareUpdate/eb687e0b15f4de25efccd8eac72515f111844230.zip|
63|2|1|0|718421798|581460531.548187|581460531.548191||5ED695F2-93FF-4773-93DB-DD26A8D47F72||Thu, 09 May 2019 04:23:31 GMT||/2019SpringFCS/patches/041-61
855/ABC97D54-7210-11E9-80BF-A7E71F0B8A89/com_apple_MobileAsset_SoftwareUpdate/36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip|
64|2|1|0|718425024|581460549.780503|581460549.780507||BA7B4CA9-F222-45DF-8A1A-84253254CE7F||Thu, 09 May 2019 04:17:58 GMT||/2019SpringFCS/patches/041-62
107/D03E6778-720E-11E9-9C10-D329CDD9CD95/com_apple_MobileAsset_SoftwareUpdate/5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip|
65|2|1|0|356422336|581460568.781407|581460568.78141||47537EDC-70DE-4504-A4E6-0FF7DDFEC7FC||Thu, 09 May 2019 04:56:39 GMT||/2019SpringFCS/patches/041-615
43/B24BAEB4-7214-11E9-8AAF-DCC451E04C36/com_apple_MobileAsset_SoftwareUpdate/f3de5e313b6a2f8bfa827743402939a52e0843c1.zip|
#!/bin/bash
function load_db()
{
LOADFILE="$1";
DATA_ARR=();
FINALDATA_ARR=();
while IFS= read -r line;
do
DATAVAR=$(echo "$line" | awk -F '|' '{print $13}' | tr "/" "\n");
for DATA in $DATAVAR;
do
DATA_ARR+=($(echo $DATA));
done;
FINALDATA_ARR+=($(echo ${DATA_ARR[-1]}));
unset DATA_ARR DATAVAR;
done < $LOADFILE;
}
function check_match()
{
MATCH="$1";
for MATCHDATA in ${FINALDATA_ARR[*]};
do
if grep -q $MATCH <<< "$MATCHDATA"; then
MATCHTRIGGER='0';
break;
else
MATCHTRIGGER='1';
fi;
done;
if [[ $MATCHTRIGGER -eq 0 ]]; then
echo "File exists: $MATCH";
RETVAL=0;
else
echo "File not found: $MATCH";
RETVAL=1;
fi;
unset MATCH MATCHTRIGGER;
return $RETVAL;
}
SEARCH_ARR=('1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip' '5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip' '36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip' 'eb687e0b15f4de25efccd8eac72515f111844230.zip');
FILE='/home/joseph/data.txt';
cat $FILE;
load_db $FILE;
for SEARCHMODE in ${SEARCH_ARR[*]};
do
check_match $SEARCHMODE;
done;
#!/bin/bash
function load_db()
{
LOADFILE="$1";
DATA_ARR=();
FINALDATA_ARR=();
while IFS= read -r line;
do
DATAVAR=$(echo "$line" | awk -F '|' '{print $13}' | tr "/" "\n");
for DATA in $DATAVAR;
do
DATA_ARR+=($(echo $DATA));
done;
FINALDATA_ARR+=($(echo ${DATA_ARR[-1]}));
unset DATA_ARR DATAVAR;
done < $LOADFILE;
unset LOADFILE;
}
function check_match()
{
MATCH="$1";
for MATCHDATA in ${FINALDATA_ARR[*]};
do
if grep -q $MATCH <<< "$MATCHDATA"; then
MATCHTRIGGER='0';
break;
else
MATCHTRIGGER='1';
fi;
done;
if [[ $MATCHTRIGGER -eq 0 ]]; then
echo "File exists: $MATCH";
RETVAL=0;
else
echo "File not found: $MATCH";
RETVAL=1;
fi;
unset MATCH MATCHTRIGGER;
return $RETVAL;
}
FILE='/var/tmp/data_db.out';
sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' > "$FILE";
load_db "$FILE";
SEARCH_ARR=('1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip' '5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip' '36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip' 'eb687e0b15f4de25efccd8eac72515f111844230.zip');
for SEARCHMODE in ${SEARCH_ARR[*]};
do
if check_match $SEARCHMODE;
BOOLVAR='0';
fi;
done;
if [[ $BOOLVAR -eq 0 ]]; then
echo "File(s) found." > /var/tmp/result.out;
else
echo "File(s) not found or missing" > /var/tmp/result.out;
fi;
# Cleanup Mode
if [ -f "$FILE" ]; then
rm -rf "$FILE";
fi;
unset SEARCH_ARR FINALDATA_ARR RETVAL FILE BOOLVAR;
{
"iPod7,1": {
"12.3": {
"11.4": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-62031/64310B52-722D-11E9-B30B-80F709B920CB/com_apple_MobileAsset_SoftwareUpdate/1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip",
"size": "1.29GB"
},
"11.4.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61881/F7FF48A2-7210-11E9-B175-CB7460953268/com_apple_MobileAsset_SoftwareUpdate/e02c712e0c65733441e569187234174464551a13.zip",
"size": "1.29GB"
},
"12.0": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-62083/9D311380-720E-11E9-A52E-86D219A16E1B/com_apple_MobileAsset_SoftwareUpdate/56e42d6c88860533dfb8cf7ee14ce7c23e8b28d3.zip",
"size": "761.2MB"
},
"12.0.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61865/C2760702-7210-11E9-A1F8-C6233872A822/com_apple_MobileAsset_SoftwareUpdate/88b8715c8438d1b378e404fe98b5d0bbae2f40c4.zip",
"size": "761.1MB"
},
"12.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61814/29B0F7C0-7210-11E9-BE00-CB4041719A72/com_apple_MobileAsset_SoftwareUpdate/b6b8ff80d610863a4281ff41837cde7d78776648.zip",
"size": "729.5MB"
},
"12.1.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61517/6A95E77E-7214-11E9-BA68-E33AB729854D/com_apple_MobileAsset_SoftwareUpdate/eb687e0b15f4de25efccd8eac72515f111844230.zip",
"size": "719.5MB"
},
"12.1.3": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61855/ABC97D54-7210-11E9-80BF-A7E71F0B8A89/com_apple_MobileAsset_SoftwareUpdate/36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip",
"size": "718.4MB"
},
"12.1.4": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-62107/D03E6778-720E-11E9-9C10-D329CDD9CD95/com_apple_MobileAsset_SoftwareUpdate/5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip",
"size": "718.4MB"
},
"12.2": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-61543/B24BAEB4-7214-11E9-8AAF-DCC451E04C36/com_apple_MobileAsset_SoftwareUpdate/f3de5e313b6a2f8bfa827743402939a52e0843c1.zip",
"size": "356.4MB"
}
},
"12.3.1": {
"11.4": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68843/2237AF9E-7C9B-11E9-9E50-8DFC6256CCDB/com_apple_MobileAsset_SoftwareUpdate/0a9d3ed53df8adcbaaeddab60fa5dd6fa5bf479c.zip",
"size": "1.29GB"
},
"11.4.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68705/5D7F4F4A-7CE0-11E9-A718-B9C5BB838259/com_apple_MobileAsset_SoftwareUpdate/3d1922b382a15510e28e1e6dbc9ce8d6207a3bbf.zip",
"size": "1.29GB"
},
"12.0": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68394/92446834-7CE8-11E9-9CD5-FC6F8FF6AC91/com_apple_MobileAsset_SoftwareUpdate/73ad153fe7b795afdb597ff89dfaf311bf7788a2.zip",
"size": "761.4MB"
},
"12.0.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68763/0DAF24EE-7CE1-11E9-ABB5-FA15E722F881/com_apple_MobileAsset_SoftwareUpdate/d62d2c69cce04b2125637a20fb027c3f31fa45fa.zip",
"size": "761.3MB"
},
"12.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68524/CECBC5C0-7CE5-11E9-B4F9-F59DA7318987/com_apple_MobileAsset_SoftwareUpdate/537c919aceed4b14169c811616aefdabf08be0d1.zip",
"size": "729.8MB"
},
"12.1.1": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68672/FD6DA688-7CDF-11E9-BCF2-938834D3AC69/com_apple_MobileAsset_SoftwareUpdate/035c45f93623ce2c31ede7d51f019d7b4901b21a.zip",
"size": "719.8MB"
},
"12.1.3": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68582/109F676A-7CDF-11E9-A504-883B817B2DEA/com_apple_MobileAsset_SoftwareUpdate/ebb27d403f4d5a8172f327da5afff3a21bb32def.zip",
"size": "718.7MB"
},
"12.1.4": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68393/1716EFC8-7CDF-11E9-AE57-C75E5A3EFF0C/com_apple_MobileAsset_SoftwareUpdate/cafb4fcd403953a7487cf176b124cf9c250f4fdb.zip",
"size": "718.7MB"
},
"12.2": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68218/9239B772-7CE8-11E9-9C70-89BE7CE92391/com_apple_MobileAsset_SoftwareUpdate/219db584012597536b53c0f6d174488a8b42556c.zip",
"size": "356.4MB"
},
"12.3": {
"url": "http://updates-http.cdn-apple.com/2019SpringFCS/patches/041-68387/05CDBEA4-7CDF-11E9-8AE8-C723C397AB7C/com_apple_MobileAsset_SoftwareUpdate/9cee78985fbd5e3d84a48f3ae747bfb81bd708ed.zip",
"size": "45.4MB"
}
}
}
}
#!/bin/bash
#Easy Version
#sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' | wc -l
#Get IP address that computer is using to connect to Apple
LocalSlices=$( sudo sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' 2>&1 | awk '{match($0,/[a-zA-Z0-9]+\.[zip] {print}' '; ip = substr($0,RSTART,RLENGTH); print ip}' )
sudo sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' 2>&1 | awk '{match\.(zip)}'
#Getting the first octet from the IP Address
CacheServerIP=`echo $CacheServerIP | cut -d . -f 1`
#Defining array function to test if first octet is in array of Zscaler IP Address range
in_array() {
local octet=${1}[@]
local IP=${2}
for i in ${!octet}; do
if [[ ${i} == ${IP} ]]; then
return 0
fi
done
return 1
}
#Array of Slicess
GoodSlices=("1365d156a39f2873c6286ea051c6d51a4a1aeaa0" "e02c712e0c65733441e569187234174464551a13" "56e42d6c88860533dfb8cf7ee14ce7c23e8b28d3" "88b8715c8438d1b378e404fe98b5d0bbae2f40c4" "b6b8ff80d610863a4281ff41837cde7d78776648" "eb687e0b15f4de25efccd8eac72515f111844230" "36ca6bf5da9432edecce30f8cbab94b9bc16d25b" "5cf792207827e2b80c7f04d8f70b2efb291eadf6" "f3de5e313b6a2f8bfa827743402939a52e0843c1");
#If then statement to see if IP matches Nike IP range or any of the ZScaler ranges listed in the array
if [ "$CacheServerIP" -eq 146 ] || [ "$CacheServerIP" -eq 156 ]; then
echo '<result>NikeBackhaul</result>'
elif in_array ZScaler "$CacheServerIP" ; then
echo '<result>ZScaler</result>' ; else
echo '<result>Slices Present</result>'
fi
#!/bin/bash
#Variables
ASSETINFODB=$( sudo sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' 2>&1 | AWK -F '|' '{print $13}' | sed "s/.*\///" );
KNOWNSLICES=('1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip' '5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip' '36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip' 'eb687e0b15f4de25efccd8eac72515f111844230.zip');
ASSETINFO_ARR=();
FINALDATA_ARR=();
echo "Found the following slices:
$ASSETINFODB"
for DATA in $ASSETINFODB;
do
ASSETINFO_ARR+=($(echo $ASSETINFODB));
done;
FINALDATA_ARR+=($(echo ${ASSETINFODB[-1]}));
unset DATA_ARR DATAVAR;
done < $LOADFILE;
echo "$ASSETINFO_ARR"
# function load_db()
# {
# LOADFILE="$1";
# DATA_ARR=();
# FINALDATA_ARR=();
# while IFS= read -r line;
# do
# DATAVAR=$(echo "$line" | awk -F '|' '{print $13}' | tr "/" "\n");
# for DATA in $DATAVAR;
# do
# DATA_ARR+=($(echo $DATA));
# done;
# FINALDATA_ARR+=($(echo ${DATA_ARR[-1]}));
# unset DATA_ARR DATAVAR;
# done < $LOADFILE;
# }
# function check_match()
# {
# MATCH="$1";
# for MATCHDATA in ${FINALDATA_ARR[*]};
# do
# if grep -q $MATCH <<< "$MATCHDATA"; then
# MATCHTRIGGER='0';
# break;
# else
# MATCHTRIGGER='1';
# fi;
# done;
# if [[ $MATCHTRIGGER -eq 0 ]]; then
# echo "File exists: $MATCH";
# RETVAL=0;
# else
# echo "File not found: $MATCH";
# RETVAL=1;
# fi;
# unset MATCH MATCHTRIGGER;
# return $RETVAL;
# }
# SEARCH_ARR=('1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip' '5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip' '36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip' 'eb687e0b15f4de25efccd8eac72515f111844230.zip');
# FILE=$( sudo sqlite3 "Library/Application Support/Apple/Assetcache/Data/AssetInfo.db" 'select * from ZASSET;' 2>&1 )
# cat $FILE;
# load_db $FILE;
# for SEARCHMODE in ${SEARCH_ARR[*]};
# do
# check_match $SEARCHMODE;
# done;
#!/bin/bash
function load_db()
{
LOADFILE="$1";
DATA_ARR=();
FINALDATA_ARR=();
while IFS= read -r line;
do
DATAVAR=$(echo "$line" | awk -F '|' '{print $13}' | tr "/" "\n");
for DATA in $DATAVAR;
do
DATA_ARR+=($(echo $DATA));
done;
FINALDATA_ARR+=($(echo ${DATA_ARR}));
unset DATA_ARR DATAVAR;
done < $LOADFILE;
unset LOADFILE;
}
function check_match()
{
MATCH="$1";
for MATCHDATA in ${FINALDATA_ARR[*]};
do
if grep -q $MATCH <<< "$MATCHDATA"; then
MATCHTRIGGER='0';
break;
else
MATCHTRIGGER='1';
fi;
done;
if [[ $MATCHTRIGGER -eq 0 ]]; then
echo "File exists: $MATCH";
RETVAL=0;
else
echo "File not found: $MATCH";
RETVAL=1;
fi;
unset MATCH MATCHTRIGGER;
return $RETVAL;
}
FILE='/var/tmp/data_db.out';
sqlite3 "/Library/Application Support/Apple/AssetCache/Data/AssetInfo.db" 'select * from ZASSET;' > "$FILE";
load_db "$FILE";
SEARCH_ARR=('1365d156a39f2873c6286ea051c6d51a4a1aeaa0.zip' '5cf792207827e2b80c7f04d8f70b2efb291eadf6.zip' '36ca6bf5da9432edecce30f8cbab94b9bc16d25b.zip' 'eb687e0b15f4de25efccd8eac72515f111844230.zip');
for SEARCHMODE in ${SEARCH_ARR[*]};
do
if check_match $SEARCHMODE;
BOOLVAR='0';
fi
done;
if [[ $BOOLVAR -eq 0 ]]; then
echo "File(s) found." > /var/tmp/result.out;
else
echo "File(s) not found or missing" > /var/tmp/result.out;
fi
# Cleanup Mode
if [ -f "$FILE" ]; then
rm -rf "$FILE";
fi;
unset SEARCH_ARR FINALDATA_ARR RETVAL FILE BOOLVAR;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment