diff --git a/BaseTools/Source/Python/build/BuildReport.pyc b/BaseTools/Source/Python/build/BuildReport.pyc index dcf39c77e..5a59c6679 100644 Binary files a/BaseTools/Source/Python/build/BuildReport.pyc and b/BaseTools/Source/Python/build/BuildReport.pyc differ diff --git a/BaseTools/Source/Python/sitecustomize.py b/BaseTools/Source/Python/sitecustomize.py index 7dbbf8a23..e66b025b5 100755 --- a/BaseTools/Source/Python/sitecustomize.py +++ b/BaseTools/Source/Python/sitecustomize.py @@ -11,5 +11,6 @@ if sys.platform == "darwin": DefaultLocal = locale.getdefaultlocale()[1] if DefaultLocal is None: DefaultLocal = 'UTF8' +if sys.version_info[0] < 3: sys.setdefaultencoding(DefaultLocal) diff --git a/ebuild.sh b/ebuild.sh index 2175c3bfc..e812bd247 100755 --- a/ebuild.sh +++ b/ebuild.sh @@ -44,7 +44,7 @@ export TOOLCHAIN=XCODE8 export TARGETARCH=X64 export BUILDTARGET=RELEASE export BUILDTHREADS=$(( NUMBER_OF_CPUS + 1 )) -export WORKSPACE=${WORKSPACE:-} +export WORKSPACE="$PWD" export CONF_PATH=${CONF_PATH:-} #export NASM_PREFIX= @@ -471,17 +471,24 @@ MainBuildScript() { # # Setup workspace if it is not set # + local EDK2DIR=$(cd "$CLOVERROOT" && echo "$PWD") if [[ -z "$WORKSPACE" ]]; then echo "Initializing workspace" + if [[ ! -x "${EDK2DIR}"/edksetup.sh ]]; then + echo "Error: Can't find edksetup.sh script !" >&2 + exit 1 + fi + # This version is for the tools in the BaseTools project. # this assumes svn pulls have the same root dir # export EDK_TOOLS_PATH=`pwd`/../BaseTools # This version is for the tools source in edk2 - cd "$CLOVERROOT" + # cd "$EDK2DIR" export EDK_TOOLS_PATH="${PWD}"/BaseTools set +u source ./edksetup.sh BaseTools set -u + cd "$CLOVERROOT" else echo "Building from: $WORKSPACE" fi @@ -663,11 +670,11 @@ setInitBootMsg(){ # Deploy Clover files for packaging MainPostBuildScript() { - if [[ -z "$EDK_TOOLS_PATH" ]]; then +# if [[ -z "$EDK_TOOLS_PATH" ]]; then export BASETOOLS_DIR="$WORKSPACE"/BaseTools/Source/C/bin - else - export BASETOOLS_DIR="$EDK_TOOLS_PATH"/Source/C/bin - fi +# else +# export BASETOOLS_DIR="$EDK_TOOLS_PATH"/Source/C/bin +# fi export BOOTSECTOR_BIN_DIR="$CLOVERROOT"/CloverEFI/BootSector/bin if (( $NOBOOTFILES == 0 )); then echo Compressing DUETEFIMainFv.FV ... diff --git a/gbuild.sh b/gbuild.sh deleted file mode 100755 index eb3098b1d..000000000 --- a/gbuild.sh +++ /dev/null @@ -1,1010 +0,0 @@ -#!/bin/bash - -# ebuild.sh ->ebuild.sh //renamed to be unique file begining from E -# Script for building CloverEFI source under OS X or Linux -# Supported chainloads(compilers) are XCODE*, GCC*, UNIXGCC and CLANG -# -# -# Created by Jadran Puharic on 1/6/12. -# Modified by JrCs on 3/9/13. -# Zenith432, STLVNUB, cecekpawon 2016 -# Micky1979 2016 - -# Go to the Clover root directory -cd "$(dirname $0)" - -# Global variables -declare -r SELF="${0##*/}" -declare -r CLOVERROOT="$PWD" -declare -r SYSNAME="$(uname)" -declare -r DRIVERS_LEGACY="BIOS" # same in buildpkg.sh/makeiso -declare -r DRIVERS_UEFI="UEFI" # same in buildpkg.sh/makeiso -declare -r DRIVERS_OFF="off" # same in buildpkg.sh/makeiso - -if [[ "$SYSNAME" == Linux ]]; then - declare -r NUMBER_OF_CPUS=$(nproc) -else - declare -r NUMBER_OF_CPUS=$(sysctl -n hw.logicalcpu) -fi -declare -a EDK2_BUILD_OPTIONS= -print_option_help_wc= -have_fmt= -PLATFORMFILE= -MODULEFILE= -TARGETRULE= - -SCRIPT_VERS="2018-06-18" - -# Macro -M_NOGRUB=0 -M_APPLEHFS=0 - -# Default values -export TOOLCHAIN=XCODE8 -export TARGETARCH=X64 -export BUILDTARGET=RELEASE -export BUILDTHREADS=$(( NUMBER_OF_CPUS + 1 )) -export WORKSPACE=${WORKSPACE:-} -export CONF_PATH=${CONF_PATH:-} -#export NASM_PREFIX= - -# if building through Xcode, then TOOLCHAIN_DIR is not defined -# checking if it is where CloverGrowerPro put it -if [[ "$SYSNAME" == Linux ]]; then - export TOOLCHAIN=GCC53 - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} -else - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/../../toolchain} -fi -if [[ ! -d $TOOLCHAIN_DIR ]]; then - TOOLCHAIN_DIR="${PWD}"/../../opt/local -fi -export TOOLCHAIN_DIR -echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" - -VBIOSPATCHCLOVEREFI=0 -ONLYSATA0PATCH=0 -USE_BIOS_BLOCKIO=0 -USE_LOW_EBDA=1 -CLANG=0 -GENPAGE=0 - -FORCEREBUILD=0 -NOBOOTFILES=0 - -declare -r GIT=`which git` -#declare -r GITDIR=`git status 2> /dev/null` # unsafe as git repository may exist in parent directory -declare -r VERSTXT="vers.txt" -if [[ -x "/usr/bin/sw_vers" ]]; then - declare -r OSVER="$(sw_vers -productVersion | sed -e 's/\.0$//g')" -elif [[ -x "/usr/bin/lsb_release" ]]; then - # Linux print the name+version in in two lines, sed serves to made it in one line! - # ..otherwise Clover fail because Version.h will have a line with no null terminated char. - declare -r OSVER="$(lsb_release -sir | sed -e ':a;N;$!ba;s/\n/ /g')" -fi -PATCH_FILE= - -# Bash options -set -e # errexit -set -u # Blow on unbound variable - -## FUNCTIONS ## - -function exitTrap() { - if [[ -n "$PATCH_FILE" && -n "$WORKSPACE" ]]; then - echo -n "Unpatching edk2..." - ( cd "$WORKSPACE" && cat "$CLOVERROOT"/Patches_for_EDK2/$PATCH_FILE | eval "$PATCH_CMD -p0 -R" &>/dev/null ) - if [[ $? -eq 0 ]]; then - echo " done" - else - echo " failed" - fi - fi -} - -# Check if we need to patch the sources -checkPatch() { - #if [[ -x /usr/bin/git ]]; then - # PATCH_CMD="/usr/bin/git apply --whitespace=nowarn" - if [[ -n "${GIT}" ]]; then - PATCH_CMD="${GIT} apply --whitespace=nowarn" - else - PATCH_CMD="/usr/bin/patch" - fi - - checkToolchain - - if [[ "$SYSNAME" == Linux ]]; then - export GCC53_BIN="$TOOLCHAIN_DIR/bin/" - if [[ ! -x "${GCC53_BIN}gcc" ]]; then - echo "No clover toolchain found !" >&2 - echo "Install on your system or define the TOOLCHAIN_DIR variable." >&2 - exit 1 - fi - else - if [[ -n "${XCODE_BUILD:-}" ]]; then - #declare -r XCODE_MAJOR_VERSION="$(xcodebuild -version | sed -nE 's/^Xcode ([0-9]).*/\1/p')" - XCODE_VERSION="$(echo `$XCODE_BUILD -version` | sed -nE 's/^Xcode ([0-9.]+).*/\1/p')" - declare -r XCODE_MAJOR_VERSION="$(echo $XCODE_VERSION | cut -d. -f1)" - - case "$XCODE_MAJOR_VERSION" in - 5) PATCH_FILE=;; - esac - fi - - export GCC53_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-" - if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC53_BIN}gcc" ]]; then - echo "No clover toolchain found !" >&2 - echo "Build it with the build_gcc8.sh script or define the TOOLCHAIN_DIR variable." >&2 - exit 1 - fi - fi - -# Linux does not come with nasm installed! - -# if [[ ! -x "$TOOLCHAIN_DIR"/bin/nasm ]]; then -# echo "No nasm binary found in toolchain directory !" >&2 -# if [[ "$SYSNAME" != Linux ]]; then -# echo "Build it with the buildnasm.sh script." >&2 -# fi -# exit 1 -# fi - - if [[ -f "/opt/local/bin/nasm" ]]; then - export NASM_PREFIX="/opt/local/bin/" - elif [[ -f "${TOOLCHAIN_DIR}/bin/nasm" ]]; then - # using $TOOLCHAIN_DIR here should allow Clover source to be - # inside any sub folder instead of only in ~/ - export NASM_PREFIX="${TOOLCHAIN_DIR}/bin/" - else - export NASM_PREFIX="" - fi - - echo "NASM_PREFIX: $NASM_PREFIX" - - #NASM_VER=`nasm -v | awk '/version/ {print $3}'` - NASM_VER=`${NASM_PREFIX}nasm -v | sed -nE 's/^.*version.([0-9\.]+).*$/\1/p'` - - echo "NASM_VER: $NASM_VER" - if [[ "$SYSNAME" == Darwin ]]; then - if ! isNASMGood "${NASM_PREFIX}nasm"; then echo "your nasm is not good to build Clover!" && exit 1; fi - fi -} - -print_option_help () { - if [[ x$print_option_help_wc = x ]]; then - if wc -L /dev/null 2>&1; then - print_option_help_wc=-L - elif wc -m /dev/null 2>&1; then - print_option_help_wc=-m - else - print_option_help_wc=-b - fi - fi - if [[ x$have_fmt = x ]]; then - if fmt -w 40 /dev/null 2>&1; then - have_fmt=y; - else - have_fmt=n; - fi - fi - local print_option_help_lead=" $1" - local print_option_help_lspace="$(echo "$print_option_help_lead" | wc $print_option_help_wc)" - local print_option_help_fill="$((26 - print_option_help_lspace))" - printf "%s" "$print_option_help_lead" - local print_option_help_nl= - if [[ $print_option_help_fill -le 0 ]]; then - print_option_help_nl=y - echo - else - print_option_help_i=0; - while [[ $print_option_help_i -lt $print_option_help_fill ]]; do - printf " " - print_option_help_i=$((print_option_help_i+1)) - done - print_option_help_nl=n - fi - local print_option_help_split= - if [[ x$have_fmt = xy ]]; then - print_option_help_split="$(echo "$2" | fmt -w 50)" - else - print_option_help_split="$2" - fi - if [[ x$print_option_help_nl = xy ]]; then - echo "$print_option_help_split" | awk '{ print " " $0; }' - else - echo "$print_option_help_split" | awk 'BEGIN { n = 0 } - { if (n == 1) print " " $0; else print $0; n = 1 ; }' - fi -} - -# Function to manage PATH -pathmunge () { - if [[ ! $PATH =~ (^|:)$1(:|$) ]]; then - if [[ "${2:-}" = "after" ]]; then - export PATH=$PATH:$1 - else - export PATH=$1:$PATH - fi - fi -} - -packagesPathmunge () { - if [[ -z "${PACKAGES_PATH:-}" ]]; then - export PACKAGES_PATH="$WORKSPACE" # must be always the first - fi - if [[ ! $PACKAGES_PATH =~ (^|:)$1(:|$) ]]; then - if [[ "${2:-}" = "after" ]]; then - export PACKAGES_PATH=$PACKAGES_PATH:$1 - else - export PACKAGES_PATH=$1:$PACKAGES_PATH - fi - fi -} - -# Add edk2 build option -addEdk2BuildOption() { - EDK2_BUILD_OPTIONS=("${EDK2_BUILD_OPTIONS[@]}" $@) -} - -# Add edk2 build macro -addEdk2BuildMacro() { - local macro="$1" - [[ "$macro" == "NO_GRUB_DRIVERS" ]] && M_NOGRUB=1 - addEdk2BuildOption "-D" "$macro" -} - -# Check NASM - -IsNumericOnly() { - if [[ "${1}" =~ ^-?[0-9]+$ ]]; then - return 0 # no, contains other or is empty - else - return 1 # yes is an integer (no matter for bash if there are zeroes at the beginning comparing it as integer) - fi -} -needNASM() { - local nasmPath="" - local nasmArray=( $(which -a nasm) ) - local needInstall=1 - local good="" - - if [ ${#nasmArray[@]} -ge "1" ]; then - - for i in "${nasmArray[@]}" - do - echo "found nasm v$(${i} -v | grep 'NASM version' | awk '{print $3}') at $(dirname ${i})" - done - - # we have a good nasm? - for i in "${nasmArray[@]}" - do - if isNASMGood "${i}"; then - good="${i}" - break - fi - done - - if [[ -x "${good}" ]] ; then - # only nasm at index 0 is used! - if [[ "${good}" == "${nasmArray[0]}" ]]; then - echo "${good} is ok.." - else - echo "this one is good:" - echo "${good}" - fi - else - # no nasm versions suitable for Clover - echo "nasm found, but is not good to build Clover.." - needInstall=0 - fi - else - needInstall=0 - echo "nasm not found.." - fi - return $needInstall -} - -isNASMGood() { - # nasm should be greater or equal to 2.12.02 to be good building Clover. - # There was a bad macho relocation in outmacho.c, fixed by Zenith432 - # and accepted by nasm devel during 2.12.rcxx (release candidate) - - result=1 - local nasmver=$( "${1}" -v | grep 'NASM version' | awk '{print $3}' ) - - case "$nasmver" in - 2.12.0[2-9]* | 2.12.[1-9]* | 2.1[3-9]* | 2.[2-9]* | [3-9]* | [1-9][1-9]*) - result=0;; - *) - printf "\n\e[1;33mUnknown or unsupported NASM version found at:\n${1}\n\n\e[0m";; - esac - - return $result -} - -# Check Xcode toolchain -checkXcode () { - XCODE_BUILD="/usr/bin/xcodebuild" - local LOCALBIN="/usr/local/bin" - local CLOVERBIN="${CLOVERROOT}/BuildTools/usr/local/bin" - - if [[ ! -x "${XCODE_BUILD}" ]]; then - echo "ERROR: Install Xcode Tools from Apple before using this script." >&2; exit 1 - fi - - if [[ -f "/opt/local/bin/mtoc.NEW" ]]; then - export MTOC_PREFIX="/opt/local/bin/" - elif [[ -f "${LOCALBIN}/mtoc.NEW" ]]; then - export MTOC_PREFIX="${LOCALBIN}/" - elif [[ -f "${TOOLCHAIN_DIR}/bin/mtoc.NEW" ]]; then - export MTOC_PREFIX="${TOOLCHAIN_DIR}/bin/" - elif [[ -f "${CLOVERBIN}/mtoc.NEW" ]]; then - # using $TOOLCHAIN_DIR here should allow Clover source to be - # inside any sub folder instead of only in ~/ - export MTOC_PREFIX="${CLOVERBIN}/" - else - ./buildmtoc.sh - export MTOC_PREFIX="${TOOLCHAIN_DIR}/bin/" - fi - echo "MTOC_PREFIX: $MTOC_PREFIX" -} - -# Print the usage. -usage() { - echo "Script for building CloverEFI sources on Darwin OS X" - echo "Version from ${SCRIPT_VERS}" - printf "Usage: %s [OPTIONS] [all|fds|genc|genmake|clean|cleanpkg|cleanall|cleanlib|modules|libraries]\n" "$SELF" - echo - echo "Configuration:" - print_option_help "-n THREADNUMBER" "Build the platform using multi-threaded compiler [default is number of CPUs + 1]" - print_option_help "-h, --help" "print this message and exit" - print_option_help "-v, --version" "print the version information and exit" - echo - echo "Toolchain:" - print_option_help "-clang" "use XCode Clang toolchain" - print_option_help "-llvm" "use LLVM toolchain" - print_option_help "-gcc49" "use GCC 4.9 toolchain" - print_option_help "-gcc53" "use GCC 5.3 toolchain" - print_option_help "-unixgcc" "use UNIXGCC toolchain" - print_option_help "-xcode" "use XCode 3.2 toolchain" - print_option_help "-xcode5" "use XCode 5-7 toolchain " - print_option_help "-xcode8" "use XCode 8 toolchain [Default]" - print_option_help "-t TOOLCHAIN, --tagname=TOOLCHAIN" "force to use a specific toolchain" - echo - echo "Target:" - print_option_help "-x64" "build Clover in 64-bit [boot6] [Default]" - print_option_help "-mc, --x64-mcp" "build Clover in 64-bit [boot7] using BiosBlockIO (compatible with MCP chipset)" - print_option_help "-p PLATFORMFILE, --platform=PLATFORMFILE" "Build the platform specified by the DSC filename argument" - print_option_help "-m MODULEFILE, --module=MODULEFILE" "Build only the module specified by the INF filename argument" - print_option_help "-b BUILDTARGET, --buildtarget=BUILDTARGET" "using the BUILDTARGET to build the platform" - print_option_help "-clean" "same as clean" - print_option_help "-cleanall" "same as cleanall" - echo - echo "Options:" - print_option_help "-D MACRO, --define=MACRO" "Macro: \"Name[=Value]\"." - print_option_help "--vbios-patch-cloverefi" "activate vbios patch in CloverEFI" - print_option_help "--only-sata0" "activate only SATA0 patch" - print_option_help "--std-ebda" "ebda offset dont shift to 0x88000" - print_option_help "--genpage" "dynamically generate page table under ebda" - print_option_help "--no-usb" "disable USB support" - print_option_help "--no-lto" "disable Link Time Optimisation" - print_option_help "--ext-pre" "deprecated option" - print_option_help "--ext-co" "deprecated option" - print_option_help "--ext-build" "deprecated option" - print_option_help "--edk2shell " "copy edk2 Shell to EFI tools dir" - echo - echo "build options:" - print_option_help "-fr, --force-rebuild" "force rebuild all targets" - print_option_help "-nb, --no-bootfiles" "don't generate boot files" - echo - echo "Report bugs to https://sourceforge.net/p/cloverefiboot/discussion/1726372/" -} - -# Manage option argument -argument () { - local opt=$1 - shift - - if [[ $# -eq 0 ]]; then - printf "%s: option \`%s' requires an argument\n" "$0" "$opt" - exit 1 - fi - - echo $1 -} - -# Check the command line arguments -checkCmdlineArguments() { - while [[ $# -gt 0 ]]; do - local option=$1 - shift - case "$option" in - -clang | --clang) TOOLCHAIN=XCLANG ; CLANG=1 ;; - -llvm | --llvm) TOOLCHAIN=LLVM ; CLANG=1 ;; - -xcode5 | --xcode5 ) TOOLCHAIN=XCODE5 ; CLANG=1 ;; - -xcode8 | --xcode8 ) TOOLCHAIN=XCODE8 ; CLANG=1 ;; - -GCC49 | --GCC49) TOOLCHAIN=GCC49 ;; - -gcc49 | --gcc49) TOOLCHAIN=GCC49 ;; - -GCC53 | --GCC53) TOOLCHAIN=GCC53 ;; - -gcc53 | --gcc53) TOOLCHAIN=GCC53 ;; - -unixgcc | --gcc) TOOLCHAIN=UNIXGCC ;; - -xcode | --xcode ) TOOLCHAIN=XCODE32 ;; - -x64 | --x64) - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 - ;; - -mc | --x64-mcp) USE_BIOS_BLOCKIO=1 ;; - -clean) TARGETRULE=clean ;; - -cleanall) TARGETRULE=cleanall ;; - -fr | --force-rebuild) FORCEREBUILD=1 ;; - -nb | --no-bootfiles) NOBOOTFILES=1 ;; -# -d | -debug | --debug) BUILDTARGET=DEBUG ;; -# -r | -release | --release) BUILDTARGET=RELEASE ;; - -a) TARGETARCH=$(argument $option "$@") - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 - ;; - --arch=*) - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 - ;; - -p) PLATFORMFILE=$(argument $option "$@"); shift - ;; - --platform=*) - PLATFORMFILE=$(echo "$option" | sed 's/--platform=//') - ;; - -m) MODULEFILE=$(argument $option "$@"); shift - ;; - --module=*) - MODULEFILE=$(echo "$option" | sed 's/--module=//') - ;; - -b) BUILDTARGET=$(argument $option "$@"); shift - ;; - --buildtarget=*) - BUILDTARGET=$(echo "$option" | sed 's/--buildtarget=//') - ;; - -t) TOOLCHAIN=$(argument $option "$@"); shift - ;; - --tagname=*) - TOOLCHAIN=$(echo "$option" | sed 's/--tagname=//') - ;; - -D) - addEdk2BuildMacro $(argument $option "$@"); shift - ;; - --define=*) - addEdk2BuildMacro $(echo "$option" | sed 's/--define=//') - ;; - -n) - BUILDTHREADS=$(argument $option "$@"); shift - ;; - --vbios-patch-cloverefi) - VBIOSPATCHCLOVEREFI=1 - ;; - --only-sata0) - ONLYSATA0PATCH=1 - ;; - --std-ebda) - USE_LOW_EBDA=0 - ;; - --genpage) - GENPAGE=1 - ;; - --no-usb) - addEdk2BuildMacro DISABLE_USB_SUPPORT - ;; - --no-lto) - addEdk2BuildMacro DISABLE_LTO - ;; - --ext-pre | --ext-co | --ext-build) - printf "\`%s' is deprecated. This message will be removed soon\n" "$option" 1>&2 - sleep 4 - ;; - --edk2shell) EDK2SHELL=$(argument $option "$@"); shift - ;; - -h | -\? | -help | --help) - usage && exit 0 - ;; - -v | --version) - echo "$SELF vers from $SCRIPT_VERS" && exit 0 - ;; - -*) - printf "Unrecognized option \`%s'\n" "$option" 1>&2 - exit 1 - ;; - *) - TARGETRULE="$option" - ;; - esac - done - - # Update variables - PLATFORMFILE="${PLATFORMFILE:-Clover.dsc}" - if [ ! -z "${MODULEFILE}" ]; then - MODULEFILE=" -m Clover/$MODULEFILE" - fi - - # Allow custom config path - if [[ -f "${CONF_PATH}/target.txt" ]]; then - addEdk2BuildOption "--conf=${CONF_PATH%/}" - elif [[ -f "${CLOVERROOT}/Conf/target.txt" ]]; then - addEdk2BuildOption "--conf=${CLOVERROOT}/Conf" - fi -} - -## Check tools for the toolchain -checkToolchain() { - case "$TOOLCHAIN" in - XCLANG|XCODE*) checkXcode ;; - esac -} - -# Main build script -MainBuildScript() { - checkCmdlineArguments $@ - #checkToolchain - checkPatch - -# echo "NASM_PREFIX: ${NASM_PREFIX}" - - local repoRev="0000" -# if [[ -d .svn ]]; then -# repoRev=$(svnversion -n | tr -d [:alpha:]) -# repoRev=$(svn info | grep "Revision" | tr -cd [:digit:]) -# elif [[ -d .git ]]; then -# repoRev=$(git svn find-rev git-svn | tr -cd [:digit:]) -# fi - -# echo -n "${repoRev}" > "${VERSTXT}" - repoRev=$(cat "${VERSTXT}" | tr -d [:alpha:]) - - # - # we are building the same rev as before? - local SkipAutoGen=0 - # - if [[ -f "$CLOVERROOT"/rEFIt_UEFI/Version.h ]]; then - local builtedRev=$(cat "$CLOVERROOT"/rEFIt_UEFI/Version.h \ - | grep '#define FIRMWARE_REVISION L' | awk -v FS="(\"|\")" '{print $2}') -# echo "old revision ${builtedRev}" >echo.txt -# echo "new revision ${repoRev}" >>echo.txt - - if [ "${repoRev}" = "${builtedRev}" ]; then SkipAutoGen=1; fi - fi - - # - # Setup workspace if it is not set - # - local EDK2DIR=$(cd "$CLOVERROOT" && echo "$PWD") - if [[ -z "$WORKSPACE" ]]; then - echo "Initializing workspace" - if [[ ! -x "${EDK2DIR}"/edksetup.sh ]]; then - echo "Error: Can't find edksetup.sh script !" >&2 - exit 1 - fi - - # This version is for the tools in the BaseTools project. - # this assumes svn pulls have the same root dir - # export EDK_TOOLS_PATH=`pwd`/../BaseTools - # This version is for the tools source in edk2 - # cd "$EDK2DIR" - export EDK_TOOLS_PATH="${PWD}"/BaseTools - set +u - source ./edksetup.sh BaseTools - set -u - cd "$CLOVERROOT" - else - echo "Building from: $WORKSPACE" - fi - - # Trying to patch edk2 -# if [[ -n "$PATCH_FILE" ]]; then -# echo -n "Patching edk2..." -# ( cd "$WORKSPACE" && cat "$CLOVERROOT"/Patches_for_EDK2/$PATCH_FILE | eval "$PATCH_CMD -p0" &>/dev/null ) -# if [[ $? -eq 0 ]]; then -# echo " done" -# else -# echo " failed" -# fi -# fi - - export CLOVER_PKG_DIR="$CLOVERROOT"/CloverPackage/CloverV2 - - # Cleaning part of the script if we have told to do it - if [[ "$TARGETRULE" == cleanpkg ]]; then - if [[ "$SYSNAME" != Linux ]]; then - # Make some house cleaning - echo "Cleaning CloverUpdater files..." - make -C "$CLOVERROOT"/CloverPackage/CloverUpdater clean - - echo "Cleaning CloverPrefpane files..." - make -C "$CLOVERROOT"/CloverPackage/CloverPrefpane clean - fi - - echo "Cleaning bootsector files..." - local BOOTHFS="$CLOVERROOT"/BootHFS - DESTDIR="$CLOVER_PKG_DIR"/BootSectors make -C $BOOTHFS clean - - echo - # Use subshell to use shopt - ( - echo "Cleaning packaging files..." - shopt -s nullglob - find "$CLOVER_PKG_DIR"/Bootloaders/x64/ -mindepth 1 -not -path "**/.svn*" -delete - if [[ -d "$CLOVER_PKG_DIR"/EFI/BOOT ]]; then - find "$CLOVER_PKG_DIR"/EFI/BOOT/ -name '*.efi' -mindepth 1 -not -path "**/.svn*" -delete - rmdir "$CLOVER_PKG_DIR"/EFI/BOOT &>/dev/null - fi - local dir - for dir in "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers*; do - find "$dir" -mindepth 1 -not -path "**/.svn*" -delete - rmdir "$dir" &>/dev/null - done - find "$CLOVER_PKG_DIR"/EFI/CLOVER/ -name '*.efi' -maxdepth 1 -not -path "**/.svn*" -delete - for dir in "$CLOVER_PKG_DIR"/drivers/$DRIVERS_OFF/*; do - find "$dir" -mindepth 1 -not -path "**/.svn*" -delete - done - ) - echo "Done!" - exit $? - - elif [[ "$TARGETRULE" == clean || "$TARGETRULE" == cleanall ]]; then - build --quiet -p $PLATFORMFILE -b $BUILDTARGET \ - -t $TOOLCHAIN -n $BUILDTHREADS $TARGETRULE - [[ "$TARGETRULE" == cleanall ]] && make -C $WORKSPACE/BaseTools clean - exit $? - fi - - # Create edk tools if necessary - if [[ ! -x "$EDK_TOOLS_PATH/Source/C/bin/GenFv" ]]; then - echo "Building tools as they are not found" - make -C "$WORKSPACE"/BaseTools CC="gcc -Wno-deprecated-declarations" - fi - - # Apply options - [[ "$USE_BIOS_BLOCKIO" -ne 0 ]] && addEdk2BuildMacro 'USE_BIOS_BLOCKIO' - [[ "$VBIOSPATCHCLOVEREFI" -ne 0 ]] && addEdk2BuildMacro 'ENABLE_VBIOS_PATCH_CLOVEREFI' - [[ "$ONLYSATA0PATCH" -ne 0 ]] && addEdk2BuildMacro 'ONLY_SATA_0' - [[ "$USE_LOW_EBDA" -ne 0 ]] && addEdk2BuildMacro 'USE_LOW_EBDA' - [[ -d "$WORKSPACE/MdeModulePkg/Universal/Variable/EmuRuntimeDxe" ]] && addEdk2BuildMacro 'HAVE_LEGACY_EMURUNTIMEDXE' - [[ "$CLANG" -ne 0 ]] && addEdk2BuildMacro 'CLANG' - - local cmd="${EDK2_BUILD_OPTIONS[@]}" - - if (( $SkipAutoGen == 1 )) && (( $FORCEREBUILD == 0 )); then - cmd="build --skip-autogen $cmd" - else - cmd="build $cmd" - fi - - cmd="$cmd -p $PLATFORMFILE $MODULEFILE -a $TARGETARCH -b $BUILDTARGET" - cmd="$cmd -t $TOOLCHAIN -n $BUILDTHREADS $TARGETRULE" - - echo - echo "Running edk2 build for Clover$TARGETARCH using the command:" - echo "$cmd" - echo - - # Build Clover version - if (( $SkipAutoGen == 0 )) || (( $FORCEREBUILD == 1 )); then - local clover_revision=$(cat "${CLOVERROOT}/${VERSTXT}") - local clover_build_date=$(date '+%Y-%m-%d %H:%M:%S') - #echo "#define FIRMWARE_VERSION \"2.31\"" > "$CLOVERROOT"/Version.h - echo "#define FIRMWARE_BUILDDATE \"${clover_build_date}\"" > "$CLOVERROOT"/Version.h - echo "#define FIRMWARE_REVISION L\"${clover_revision}\"" >> "$CLOVERROOT"/Version.h - echo "#define REVISION_STR \"Clover revision: ${clover_revision}\"" >> "$CLOVERROOT"/Version.h - - local clover_build_info="Args: " - if [[ -n "$@" ]]; then - clover_build_info="${clover_build_info} $@" - fi - - clover_build_info="${clover_build_info} | $(echo $cmd | xargs | sed -e "s, -p ${PLATFORMFILE} , ,")" - - if [[ -n "${OSVER:-}" ]]; then - clover_build_info="${clover_build_info} | OS: ${OSVER}" - fi - if [[ -n "${XCODE_VERSION:-}" ]]; then - clover_build_info="${clover_build_info} | XCODE: ${XCODE_VERSION}" - fi - # removing force rebuild related flags, and ensure only one blank space is used as separator - clover_build_info=$(echo ${clover_build_info} | sed -e 's/ -fr / /' \ - | sed -e 's/ --force-rebuild / /' | sed -e 's/ --skip-autogen / /' \ - | sed -e 's/build//' | sed -e 's/Args: | /Args: /' | sed -e 's/ / /') - - echo "#define BUILDINFOS_STR \"${clover_build_info}\"" >> "$CLOVERROOT"/Version.h - - cp "$CLOVERROOT"/Version.h "$CLOVERROOT"/rEFIt_UEFI/ - fi - - eval "$cmd" -} - -copyBin() { - local cpSrc="$1" - local cpDest="$2" - local cpFile=$(basename "$2") - local cpDestDIR=$(dirname "$cpDest") - - [[ ! -f "$cpSrc" || ! -d "$cpDestDIR" ]] && return - [[ -d "$cpDest" ]] && cpFile=$(basename "$cpSrc") - - echo " -> $cpFile" - cp -f "$cpSrc" "$cpDest" 2>/dev/null -} - -setInitBootMsg(){ - local byte="35" - case "${1}" in - *boot2) - byte="32" - ;; - *boot3) - byte="33" - ;; - *boot4) - byte="34" - ;; - *boot5) - byte="35" - ;; - *boot6) - byte="36" - ;; - *boot7) - byte="37" - ;; - *boot7-MCP79) - byte="4d" - ;; - *boot8) - byte="38" - ;; - *boot9) - byte="39" - ;; - *) - return; - ;; - esac - - if [[ -f "${1}" ]]; then - echo -e "Changing byte at 0xa9 of $(basename ${1}) to show \x${byte} as init message:" - printf "\x${byte}" | dd conv=notrunc of="${1}" bs=1 seek=$((0xa9)) - fi -} - -# Deploy Clover files for packaging -MainPostBuildScript() { - if [[ -z "$EDK_TOOLS_PATH" ]]; then - export BASETOOLS_DIR="$WORKSPACE"/BaseTools/Source/C/bin - else - export BASETOOLS_DIR="$EDK_TOOLS_PATH"/Source/C/bin - fi - export BOOTSECTOR_BIN_DIR="$CLOVERROOT"/CloverEFI/BootSector/bin - if (( $NOBOOTFILES == 0 )); then - echo Compressing DUETEFIMainFv.FV ... - "$BASETOOLS_DIR"/LzmaCompress -e -o "${BUILD_DIR}/FV/DUETEFIMAINFV${TARGETARCH}.z" "${BUILD_DIR}/FV/DUETEFIMAINFV${TARGETARCH}.Fv" - - echo Compressing DxeCore.efi ... - "$BASETOOLS_DIR"/LzmaCompress -e -o "${BUILD_DIR}/FV/DxeMain${TARGETARCH}.z" "$BUILD_DIR_ARCH/DxeCore.efi" - - echo Compressing DxeIpl.efi ... - "$BASETOOLS_DIR"/LzmaCompress -e -o "${BUILD_DIR}/FV/DxeIpl${TARGETARCH}.z" "$BUILD_DIR_ARCH/DxeIpl.efi" - - echo "Generate Loader Image ..." - fi - - cloverEFIFile=boot$((6 + USE_BIOS_BLOCKIO)) - if (( $NOBOOTFILES == 0 )); then - "$BASETOOLS_DIR"/GenFw --rebase 0x10000 -o "$BUILD_DIR_ARCH/EfiLoader.efi" "$BUILD_DIR_ARCH/EfiLoader.efi" - "$BASETOOLS_DIR"/EfiLdrImage -o "${BUILD_DIR}"/FV/Efildr64 \ - "$BUILD_DIR_ARCH"/EfiLoader.efi \ - "${BUILD_DIR}"/FV/DxeIpl${TARGETARCH}.z \ - "${BUILD_DIR}"/FV/DxeMain${TARGETARCH}.z \ - "${BUILD_DIR}"/FV/DUETEFIMAINFV${TARGETARCH}.z - if [[ "$GENPAGE" -eq 0 && "$USE_LOW_EBDA" -ne 0 ]]; then - if [[ "$SYSNAME" == Linux ]]; then - local -r EL_SIZE=$(stat -c "%s" "${BUILD_DIR}"/FV/Efildr64) - else - local -r EL_SIZE=$(stat -f "%z" "${BUILD_DIR}"/FV/Efildr64) - fi - if (( $((EL_SIZE)) > 417792 )); then - echo 'warning: boot file bigger than low-ebda permits, switching to --std-ebda' - USE_LOW_EBDA=0 - fi - fi - - local -ar COM_NAMES=(H H2 H3 H4 H5 H6 H5 H6) # Note: (H{,2,3,4,5,6,5,6}) works in Linux bash, but not Darwin bash - startBlock=Start64${COM_NAMES[$((GENPAGE << 2 | USE_LOW_EBDA << 1 | USE_BIOS_BLOCKIO))]}.com - if [[ "$GENPAGE" -ne 0 ]]; then - cat $BOOTSECTOR_BIN_DIR/$startBlock $BOOTSECTOR_BIN_DIR/efi64.com3 "${BUILD_DIR}"/FV/Efildr64 > "${BUILD_DIR}"/FV/boot - else - cat $BOOTSECTOR_BIN_DIR/$startBlock $BOOTSECTOR_BIN_DIR/efi64.com3 "${BUILD_DIR}"/FV/Efildr64 > "${BUILD_DIR}"/FV/Efildr20Pure - - if [[ "$USE_LOW_EBDA" -ne 0 ]]; then - "$BASETOOLS_DIR"/GenPage "${BUILD_DIR}"/FV/Efildr20Pure -b 0x88000 -f 0x68000 -o "${BUILD_DIR}"/FV/Efildr20 - else - "$BASETOOLS_DIR"/GenPage "${BUILD_DIR}"/FV/Efildr20Pure -o "${BUILD_DIR}"/FV/Efildr20 - fi - # Create CloverEFI file - dd if="${BUILD_DIR}"/FV/Efildr20 of="${BUILD_DIR}"/FV/boot bs=512 skip=1 - fi - - rm -rf "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers 2> /dev/null - - # clean old drivers directories - if [[ "$DRIVERS_LEGACY" != drivers64 ]]; then - rm -rf "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers64 - fi - - if [[ "$DRIVERS_UEFI" != drivers64UEFI ]]; then - rm -rf "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers64UEFI - fi - - rm -rf "$CLOVER_PKG_DIR"/CloverV2/drivers-Off - - # Be sure that all needed directories exists - mkdir -p "$CLOVER_PKG_DIR"/Bootloaders/x64 - mkdir -p "$CLOVER_PKG_DIR"/EFI/BOOT - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_LEGACY - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_UEFI - # off drivers - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileVault2 - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileVault2 - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/MemoryFix - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileSystem - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileSystem - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/HID - mkdir -p "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/Other - - # Install CloverEFI file - echo "Copy CloverEFI:" - copyBin "${BUILD_DIR}"/FV/boot "$CLOVER_PKG_DIR"/Bootloaders/x64/$cloverEFIFile - # For GENPAGE, the character "[TX]" is at offset 0x74 of Start64H[56].com, not offset 0xa9 - zenith432 - if [[ "$GENPAGE" -eq 0 ]]; then - setInitBootMsg "$CLOVER_PKG_DIR"/Bootloaders/x64/$cloverEFIFile - fi - copyBin "$BUILD_DIR_ARCH"/CLOVER.efi "$CLOVER_PKG_DIR"/EFI/BOOT/BOOTX64.efi - copyBin "$BUILD_DIR_ARCH"/CLOVER.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/CLOVERX64.efi - - # Mandatory drivers - echo "Copy Mandatory drivers:" - binArray=( FSInject XhciDxe SMCHelper AudioDxe ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_LEGACY/$efi.efi - done - - binArray=( AppleImageCodec AppleKeyAggregator AppleUITheme FirmwareVolume ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileVault2/$efi.efi - done - - binArray=( ApfsDriverLoader ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileSystem/$efi.efi - done - - if [[ $M_APPLEHFS -eq 1 ]]; then - copyBin "${CLOVERROOT}"/FileSystems/HFSPlus/X64/HFSPlus.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileSystem/HFSPlus.efi - fi - - - binArray=( FSInject DataHubDxe SMCHelper AudioDxe ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_UEFI/$efi.efi - done - - binArray=( AppleImageCodec AppleUITheme AppleKeyAggregator FirmwareVolume ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileVault2/$efi.efi - done - - if [[ $M_NOGRUB -eq 0 ]]; then - binArray=( GrubEXFAT GrubISO9660 GrubNTFS GrubUDF ) - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileSystem/$efi.efi - done - fi - - # drivers64UEFI - binArray=( CsmVideoDxe EnglishDxe EmuVariableUefi NvmExpressDxe OsxFatBinaryDrv PartitionDxe ) - - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/Other/$efi.efi - done - - binArray=( Ps2MouseDxe UsbKbDxe UsbMouseDxe ) - - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/HID/$efi.efi - done - - binArray=( ApfsDriverLoader Fat VBoxExt2 VBoxExt4 VBoxIso9600 VBoxHfs ) - - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileSystem/$efi.efi - done - - if [[ $M_APPLEHFS -eq 1 ]]; then - copyBin "${CLOVERROOT}"/FileSystems/HFSPlus/X64/HFSPlus.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileSystem/HFSPlus.efi - fi - - # drivers64UEFI/FileVault2 - binArray=( AppleKeyFeeder HashServiceFix ) - - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/FileVault2/$efi.efi - done - - # drivers64UEFI/MemoryFix - binArray=( OsxAptioFixDrv OsxLowMemFixDrv OsxAptioFix3Drv ) - - for efi in "${binArray[@]}" - do - copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_UEFI/MemoryFix/$efi.efi - done - - # Applications - echo "Copy Applications:" - copyBin "$BUILD_DIR_ARCH"/bdmesg.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/tools/ - - - if [[ "${EDK2SHELL:-}" == "MinimumShell" ]]; then - copyBin "${WORKSPACE}"/ShellBinPkg/MinUefiShell/X64/Shell.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/tools/Shell64U.efi - elif [[ "${EDK2SHELL:-}" == "FullShell" ]]; then - copyBin "${WORKSPACE}"/ShellBinPkg/UefiShell/X64/Shell.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/tools/Shell64U.efi - else - copyBin "$BUILD_DIR_ARCH"/Shell.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/tools/Shell64U.efi - fi - fi - - echo "Done!" - - # Build and install Bootsectors - echo - echo "Generating BootSectors" - local BOOTHFS="$CLOVERROOT"/BootHFS - DESTDIR="$CLOVER_PKG_DIR"/BootSectors make -C $BOOTHFS - echo "Done!" -} - -# BUILD START # -#trap 'exitTrap' EXIT - -# Default locale -export LC_ALL=POSIX - - -# Add toolchain bin directory to the PATH -if [[ "$SYSNAME" != Linux ]]; then - pathmunge "$TOOLCHAIN_DIR/bin" -fi - -MainBuildScript $@ -export BUILD_DIR="${WORKSPACE}/Build/${BUILDTARGET}_${TOOLCHAIN}" -export BUILD_DIR_ARCH="${BUILD_DIR}/$TARGETARCH" - -if [[ -z $MODULEFILE ]] && (( $NOBOOTFILES == 0 )); then - MainPostBuildScript -else - copyBin "$BUILD_DIR_ARCH"/CLOVER.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/CLOVERX64.efi - copyBin "$BUILD_DIR_ARCH"/CLOVER.efi "$CLOVER_PKG_DIR"/EFI/BOOT/BOOTX64.efi -fi - -# Local Variables: # -# mode: ksh # -# tab-width: 4 # -# indent-tabs-mode: nil # -# End: # -# -# vi: set expandtab ts=4 sw=4 sts=4: # diff --git a/rEFIt_UEFI/Platform/platformdata.c b/rEFIt_UEFI/Platform/platformdata.c index 12ed34fb4..a80f40a31 100644 --- a/rEFIt_UEFI/Platform/platformdata.c +++ b/rEFIt_UEFI/Platform/platformdata.c @@ -74,15 +74,15 @@ PLATFORMDATA ApplePlatformData[] = "MacBook", "1.0", "451211MEF5X", "MacBook-White", { 0x01, 0x60, 0x0f, 0, 0, 0x06 }, "k87", "k87", 0x72005 }, //MacBook8,1 / MacBook (Retina, 12-inch, Early 2015) - { "MacBook8,1", "MB81.88Z.F000.B00.1906140921", "183.0.0.0.0", "Mac-BE0E8AC46FE800CC", // Intel Core M-5Y51 @ 1.20 GHz + { "MacBook8,1", "MB81.88Z.F000.B00.1907231132", "185.0.0.0.0", "Mac-BE0E8AC46FE800CC", // Intel Core M-5Y51 @ 1.20 GHz "MacBook", "1.0", "C02RCE58GCN3", "MacBook-Aluminum", { 0x02, 0x25, 0x0f, 0, 0, 0x87 }, "j92", "j92", 0xf0e007 }, //MacBook9,1 / MacBook (Retina, 12-inch, Early 2016) - { "MacBook9,1", "MB91.88Z.F000.B00.1906171551", "184.0.0.0.0", "Mac-9AE82516C7C6B903", // Intel Core m5-6Y54 @ 1.20 GHz + { "MacBook9,1", "MB91.88Z.F000.B00.1907221647", "185.0.0.0.0", "Mac-9AE82516C7C6B903", // Intel Core m5-6Y54 @ 1.20 GHz "MacBook", "1.0", "C02RM408HDNK", "MacBook-Aluminum", { 0x02, 0x35, 0x0f, 0, 1, 0x05 }, "j93", "j93", 0xf0e007 }, // need EPCI //MacBook10,1 / MacBook (Retina, 12-inch, 2017) - { "MacBook10,1", "MB101.88Z.F000.B00.1906171613", "178.0.0.0.0", "Mac-EE2EBD4B90B839A8", // Intel Core i5-7Y54 @ 1.30 GHz + { "MacBook10,1", "MB101.88Z.F000.B00.1907221701", "179.0.0.0.0", "Mac-EE2EBD4B90B839A8", // Intel Core i5-7Y54 @ 1.30 GHz "MacBook", "1.0", "C02TQHACHH27", "MacBook-Aluminum", { 0x02, 0x24, 0x0f, 0, 0, 0x10 }, "j122", "j122", 0xf08009 }, // need EPCI //MacBookPro1,1 / MacBook Pro (15-inch Glossy) @@ -154,83 +154,83 @@ PLATFORMDATA ApplePlatformData[] = "MacBook Pro", "1.0", "W88F9CDEDF93", "MacBook-Aluminum", { 0x01, 0x70, 0x0f, 0, 0, 0x06 }, "k92", "k92", 0x7c005 }, //MacBookPro9,1 / MacBook Pro (15-inch, Mid 2012) - { "MacBookPro9,1", "MBP91.88Z.F000.B00.1906131919", "228.0.0.0.0", "Mac-4B7AC7E43945597E", // Intel Core i7-3720QM @ 2.60 GHz + { "MacBookPro9,1", "MBP91.88Z.F000.B00.1907241129", "229.0.0.0.0", "Mac-4B7AC7E43945597E", // Intel Core i7-3720QM @ 2.60 GHz "MacBook Pro", "1.0", "C02LW984F1G4", "MacBook-Aluminum", { 0x02, 0x01, 0x0f, 0, 1, 0x75 }, "j31", "j31", 0x76006 }, // need EPCI //MacBookPro9,2 / MacBook Pro (13-inch, Mid 2012) - { "MacBookPro9,2", "MBP91.88Z.F000.B00.1906131919", "228.0.0.0.0", "Mac-6F01561E16C75D06", // Intel Core i5-3210M @ 2.50 GHz + { "MacBookPro9,2", "MBP91.88Z.F000.B00.1907241129", "229.0.0.0.0", "Mac-6F01561E16C75D06", // Intel Core i5-3210M @ 2.50 GHz "MacBook Pro", "1.0", "C02HA041DTY3", "MacBook-Aluminum", { 0x02, 0x02, 0x0f, 0, 0, 0x44 }, "branch", "j30", 0x76006 }, //MacBookPro10,1 / MacBook Pro (Retina, 15-inch, Early 2013) - { "MacBookPro10,1", "MBP101.88Z.F000.B00.1906131920", "257.0.0.0.0", "Mac-C3EC7CD22292981F", // Intel Core i7-3740QM @ 2.70 GHz + { "MacBookPro10,1", "MBP101.88Z.F000.B00.1907241135", "258.0.0.0.0", "Mac-C3EC7CD22292981F", // Intel Core i7-3740QM @ 2.70 GHz "MacBook Pro", "1.0", "C02LHHACFFT4", "MacBook-Aluminum", { 0x02, 0x03, 0x0f, 0, 0, 0x36 }, "d2", "d2", 0x74006 }, //MacBookPro10,2 / MacBook Pro (Retina, 13-inch, Early 2013) - { "MacBookPro10,2", "MBP102.88Z.F000.B00.1906131816", "280.0.0.0.0", "Mac-AFD8A9D944EA4843", // Intel Core i5-3230M @ 2.60 GHz + { "MacBookPro10,2", "MBP102.88Z.F000.B00.1907241312", "281.0.0.0.0", "Mac-AFD8A9D944EA4843", // Intel Core i5-3230M @ 2.60 GHz "MacBook Pro", "1.0", "C02K4HACFFRP", "MacBook-Aluminum", { 0x02, 0x06, 0x0f, 0, 0, 0x59 }, "branch", "d1", 0x73007 }, //MacBookPro11,1 / MacBook Pro (Retina, 13-inch, Mid 2014) - { "MacBookPro11,1", "MBP111.88Z.F000.B00.1906132059", "156.0.0.0.0", "Mac-189A3D4F975D5FFC", // Intel Core i7-4558U @ 2.80 GHz + { "MacBookPro11,1", "MBP111.88Z.F000.B00.1907241312", "157.0.0.0.0", "Mac-189A3D4F975D5FFC", // Intel Core i7-4558U @ 2.80 GHz "MacBook Pro", "1.0", "C17N4HACG3QJ", "MacBook-Aluminum", { 0x02, 0x16, 0x0f, 0, 0, 0x68 }, "j44", "j44", 0xf0b007 }, //MacBookPro11,2 / MacBook Pro (Retina, 15-inch, Mid 2014) - { "MacBookPro11,2", "MBP112.88Z.F000.B00.1906132051", "156.0.0.0.0", "Mac-3CBD00234E554E41", // Intel Core i7-4750HQ @ 2.00 GHz + { "MacBookPro11,2", "MBP112.88Z.F000.B00.1907241257", "157.0.0.0.0", "Mac-3CBD00234E554E41", // Intel Core i7-4750HQ @ 2.00 GHz "MacBook Pro", "1.0", "C02P9HACG9FT", "MacBook-Aluminum", { 0x02, 0x18, 0x0f, 0, 0, 0x15 }, "j45", "j45", 0xf0b007 }, // need EPCI //MacBookPro11,3 / MacBook Pro (Retina, 15-inch, Mid 2014) - { "MacBookPro11,3", "MBP112.88Z.F000.B00.1906132051", "156.0.0.0.0", "Mac-2BD1B31983FE1663", // Intel Core i7-4870HQ @ 2.50 GHz + { "MacBookPro11,3", "MBP112.88Z.F000.B00.1907241257", "157.0.0.0.0", "Mac-2BD1B31983FE1663", // Intel Core i7-4870HQ @ 2.50 GHz "MacBook Pro", "1.0", "C02NNHACG3QP", "MacBook-Aluminum", { 0x02, 0x19, 0x0f, 0, 0, 0x12 }, "j45g", "j45g", 0xf0d007 }, //MacBookPro11,4 / MacBook Pro (Retina, 15-inch, Mid 2015) - { "MacBookPro11,4", "MBP114.88Z.F000.B00.1906140921", "194.0.0.0.0", "Mac-06F11FD93F0323C5", // Intel Core i7-4770HQ @ 2.20 GHz + { "MacBookPro11,4", "MBP114.88Z.F000.B00.1907221754", "195.0.0.0.0", "Mac-06F11FD93F0323C5", // Intel Core i7-4770HQ @ 2.20 GHz "MacBook Pro", "1.0", "C02Q7HACG8WL", "MacBook-Aluminum", { 0x02, 0x29, 0x0f, 0, 0, 0x23 }, "j145", "j145", 0xf07008 }, //MacBookPro11,5 / MacBook Pro (Retina, 15-inch, Mid 2015) - { "MacBookPro11,5", "MBP114.88Z.F000.B00.1906140921", "194.0.0.0.0", "Mac-06F11F11946D27C5", // Intel Core i7-4870HQ @ 2.50 GHz + { "MacBookPro11,5", "MBP114.88Z.F000.B00.1907221754", "195.0.0.0.0", "Mac-06F11F11946D27C5", // Intel Core i7-4870HQ @ 2.50 GHz "MacBook Pro", "1.0", "C02Q3HACG8WM", "MacBook-Aluminum", { 0x02, 0x30, 0x0f, 0, 0, 0x02 }, "NA", "NA", 0xf0b007 }, // need rBR RPlt EPCI //MacBookPro12,1 / MacBook Pro (Retina, 13-inch, Early 2015) - { "MacBookPro12,1", "MBP121.88Z.F000.B00.1906140921", "186.0.0.0.0", "Mac-E43C1C25D4880AD6", // Intel Core i5-5257U @ 2.70 GHz + { "MacBookPro12,1", "MBP121.88Z.F000.B00.1907221630", "187.0.0.0.0", "Mac-E43C1C25D4880AD6", // Intel Core i5-5257U @ 2.70 GHz "MacBook Pro", "1.0", "C02Q51OSH1DP", "MacBook-Aluminum", { 0x02, 0x28, 0x0f, 0, 0, 0x07 }, "j52", "j52", 0xf01008 }, //MacBookPro13,1 / MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports) - { "MacBookPro13,1", "MBP131.88Z.F000.B00.1906171613", "236.0.0.0.0", "Mac-473D31EABEB93F9B", // Intel Core i5-6360U @ 2.00 GHz + { "MacBookPro13,1", "MBP131.88Z.F000.B00.1908081144", "238.0.0.0.0", "Mac-473D31EABEB93F9B", // Intel Core i5-6360U @ 2.00 GHz "MacBook Pro", "1.0", "C02SLHACGVC1", "MacBook-Aluminum", { 0x02, 0x36, 0x0f, 0, 0, 0x97 }, "2016mb", "j130", 0xf02009 }, // need EPCI //MacBookPro13,2 / MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports) - { "MacBookPro13,2", "MBP132.88Z.F000.B00.1907242326", "259.71.1.0.0", "Mac-66E35819EE2D0D05", // Intel Core i5-6287U @ 3.10 GHz + { "MacBookPro13,2", "MBP132.88Z.F000.B00.1908071247", "260.0.0.0.0", "Mac-66E35819EE2D0D05", // Intel Core i5-6287U @ 3.10 GHz "MacBook Pro", "1.0", "C02SLHACGYFH", "MacBook-Aluminum", { 0x02, 0x37, 0x0f, 0, 0, 0x20 }, "2016mb", "j79", 0xf02009 }, //MacBookPro13,3 / MacBook Pro (15-inch, 2016) - { "MacBookPro13,3", "MBP133.88Z.F000.B00.1907242326", "259.71.1.0.0", "Mac-A5C67F76ED83108C", // Intel Core i7-6920HQ @ 2.90 GHz + { "MacBookPro13,3", "MBP133.88Z.F000.B00.1908071248", "260.0.0.0.0", "Mac-A5C67F76ED83108C", // Intel Core i7-6920HQ @ 2.90 GHz "MacBook Pro", "1.0", "C02SLHACGTFN", "MacBook-Aluminum", { 0x02, 0x38, 0x0f, 0, 0, 0x07 }, "2016mb", "j80g", 0xf04009 }, //MacBookPro14,1 / MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports) - { "MacBookPro14,1", "MBP141.88Z.F000.B00.1906171613", "198.0.0.0.0", "Mac-B4831CEBD52A0C4C", // Intel Core i5-7360U @ 2.30 GHz + { "MacBookPro14,1", "MBP141.88Z.F000.B00.1908081232", "200.0.0.0.0", "Mac-B4831CEBD52A0C4C", // Intel Core i5-7360U @ 2.30 GHz "MacBook Pro", "1.0", "C02TNHACHV29", "MacBook-Aluminum", { 0x02, 0x43, 0x0f, 0, 0, 0x06 }, "2017mbp", "j130a", 0xf0b009 }, //MacBookPro14,2 / MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports) - { "MacBookPro14,2", "MBP142.88Z.F000.B00.1906171450", "198.0.0.0.0", "Mac-CAD6701F7CEA0921", // Intel Core i5-7267U @ 3.09 GHz + { "MacBookPro14,2", "MBP142.88Z.F000.B00.1908081144", "200.0.0.0.0", "Mac-CAD6701F7CEA0921", // Intel Core i5-7267U @ 3.09 GHz "MacBook Pro", "1.0", "C02TQHACHV2N", "MacBook-Aluminum", { 0x02, 0x44, 0x0f, 0, 0, 0x01 }, "2017mbp", "j79a", 0xf09009 }, //MacBookPro14,3 / MacBook Pro (15-inch, 2017) - { "MacBookPro14,3", "MBP143.88Z.F000.B00.1906171614", "198.0.0.0.0", "Mac-551B86E5744E2388", // Intel Core i7-7700HQ @ 2.80 GHz + { "MacBookPro14,3", "MBP143.88Z.F000.B00.1908081144", "200.0.0.0.0", "Mac-551B86E5744E2388", // Intel Core i7-7700HQ @ 2.80 GHz "MacBook Pro", "1.0", "C02TQHACHTD5", "MacBook-Aluminum", { 0x02, 0x45, 0x0f, 0, 0, 0x00 }, "2017mbp", "j80ga", 0xf0a009 }, //MacBookPro15,1 / MacBook Pro (15-inch, 2018) - { "MacBookPro15,1", "MBP151.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-937A206F2EE63C01", // Intel Core i9-8950HK @ 2.90 GHz + { "MacBookPro15,1", "MBP151.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-937A206F2EE63C01", // Intel Core i9-8950HK @ 2.90 GHz "MacBook Pro", "1.0", "C02X1HACKGYG", "MacBook-Aluminum", { 0, 0, 0, 0, 0, 0 }, NULL, "j680", 0 }, //MacBookPro15,2 / MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports) - { "MacBookPro15,2", "MBP152.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-827FB448E656EC26", // Intel Core i5-8259U @ 2.30 GHz + { "MacBookPro15,2", "MBP152.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-827FB448E656EC26", // Intel Core i5-8259U @ 2.30 GHz "MacBook Pro", "1.0", "C02X1HACJHCD", "MacBook-Aluminum", { 0, 0, 0, 0, 0, 0 }, NULL, "j132", 0 }, //MacBookPro15,3 / MacBook Pro (15-inch, 2019) - { "MacBookPro15,3", "MBP153.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-1E7E29AD0135F9BC", // Intel Core i9-9980HK @ 2.40 GHz - "MacBook Pro", "1.0", "C02X1HACJHCD", "MacBook-Aluminum", - { 0, 0, 0, 0, 0, 0 }, NULL, "j780", 0 }, // need serial + { "MacBookPro15,3", "MBP153.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-1E7E29AD0135F9BC", // Intel Core i9-9980HK @ 2.40 GHz + "MacBook Pro", "1.0", "C02X1HACLVCG", "MacBook-Aluminum", + { 0, 0, 0, 0, 0, 0 }, NULL, "j780", 0 }, //MacBookPro15,4 / MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports) - { "MacBookPro15,4", "MBP154.88Z.F000.B00.1907262034", "1037.0.39.151.1", "Mac-53FDB3D8DB8CA971", // Intel Core i7-8557U @ 1.70 GHz + { "MacBookPro15,4", "MBP154.88Z.F000.B00.1908202204", "1037.0.60.0.0", "Mac-53FDB3D8DB8CA971", // Intel Core i7-8557U @ 1.70 GHz "MacBook Pro", "1.0", "FVFYXHACL411", "MacBook-Aluminum", { 0, 0, 0, 0, 0, 0 }, NULL, "j213", 0 }, //MacBookAir1,1 / MacBook Air (Original) @@ -258,37 +258,37 @@ PLATFORMDATA ApplePlatformData[] = "MacBook Air", "1.0", "C02GLHACDJWT", "Air-Enclosure", { 0x01, 0x73, 0x0f, 0, 0, 0x66 }, "k21k78", "k21", 0x76005 }, // need EPCI //MacBookAir5,1 / MacBook Air (11-inch, Mid 2012) - { "MacBookAir5,1", "MBA51.88Z.F000.B00.1906132037", "259.0.0.0.0", "Mac-66F35F19FE2A0D05", // Intel Core i7-3667U @ 2.00 GHz + { "MacBookAir5,1", "MBA51.88Z.F000.B00.1907241136", "260.0.0.0.0", "Mac-66F35F19FE2A0D05", // Intel Core i7-3667U @ 2.00 GHz "MacBook Air", "1.0", "C02J6HACDRV6", "Air-Enclosure", { 0x02, 0x04, 0x0f, 0, 0, 0x19 }, "j11j13", "j11", 0x7b006 }, // need EPCI //MacBookAir5,2 / MacBook Air (13-inch, Mid 2012) - { "MacBookAir5,2", "MBA51.88Z.F000.B00.1906132037", "259.0.0.0.0", "Mac-2E6FAB96566FE58C", // Intel Core i5-3427U @ 1.80 GHz + { "MacBookAir5,2", "MBA51.88Z.F000.B00.1907241136", "260.0.0.0.0", "Mac-2E6FAB96566FE58C", // Intel Core i5-3427U @ 1.80 GHz "MacBook Air", "1.0", "C02HA041DRVC", "Air-Enclosure", { 0x02, 0x05, 0x0f, 0, 0, 0x09 }, "j11j13", "j13", 0x7b006 }, //MacBookAir6,1 / MacBook Air (11-inch, Mid 2013) - { "MacBookAir6,1", "MBA61.88Z.F000.B00.1906131925", "117.0.0.0.0", "Mac-35C1E88140C3E6CF", // Intel Core i7-4650U @ 1.70 GHz + { "MacBookAir6,1", "MBA61.88Z.F000.B00.1908061626", "118.0.0.0.0", "Mac-35C1E88140C3E6CF", // Intel Core i7-4650U @ 1.70 GHz "MacBook Air", "1.0", "C2QM6HACFKYN", "Air-Enclosure", { 0x02, 0x12, 0x0f, 0, 1, 0x43 }, "j41j43", "j41", 0x7b007 }, // need EPCI //MacBookAir6,2 / MacBook Air (13-inch, Mid 2013) - { "MacBookAir6,2", "MBA61.88Z.F000.B00.1906131925", "117.0.0.0.0", "Mac-7DF21CB3ED6977E5", // Intel Core i5-4250U @ 1.30 GHz + { "MacBookAir6,2", "MBA61.88Z.F000.B00.1908061626", "118.0.0.0.0", "Mac-7DF21CB3ED6977E5", // Intel Core i5-4250U @ 1.30 GHz "MacBook Air", "1.0", "C02L9HACF5V7", "Air-Enclosure", { 0x02, 0x13, 0x0f, 0, 0, 0x15 }, "j41j43", "j43", 0x7b007 }, //MacBookAir7,1 / MacBook Air (11-inch, Early 2015) - { "MacBookAir7,1", "MBA71.88Z.F000.B00.1906140921", "188.0.0.0.0", "Mac-9F18E312C5C2BF0B", // Intel Core i5-5250U @ 1.60 GHz + { "MacBookAir7,1", "MBA71.88Z.F000.B00.1907231132", "190.0.0.0.0", "Mac-9F18E312C5C2BF0B", // Intel Core i5-5250U @ 1.60 GHz "MacBook Air", "1.0", "C02PVHACGFWL", "Air-Enclosure", { 0x02, 0x26, 0x0f, 0, 0, 0x02 }, "j110", "j110", 0x7b007 }, //MacBookAir7,2 / MacBook Air (13-inch, Early 2015) - { "MacBookAir7,2", "MBA71.88Z.F000.B00.1906140921", "188.0.0.0.0", "Mac-937CB26E2E02BB01", // Intel Core i7-5650U @ 2.20 GHz + { "MacBookAir7,2", "MBA71.88Z.F000.B00.1907231132", "190.0.0.0.0", "Mac-937CB26E2E02BB01", // Intel Core i7-5650U @ 2.20 GHz "MacBook Air", "1.0", "C02Q1HACG940", "Air-Enclosure", { 0x02, 0x27, 0x0f, 0, 0, 0x02 }, "j113", "j113", 0xf0a008 }, //MacBookAir8,1 / MacBook Air (Retina, 13-inch, 2018) - { "MacBookAir8,1", "MBA81.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-827FAC58A8FDFA22", // Intel Core i5-8210Y @ 1.60 GHz + { "MacBookAir8,1", "MBA81.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-827FAC58A8FDFA22", // Intel Core i5-8210Y @ 1.60 GHz "MacBook Air", "1.0", "FVFXJHACJK77", "Air-Enclosure", { 0, 0, 0, 0, 0, 0 }, NULL, "j140k", 0 }, //MacBookAir8,2 / MacBook Air (Retina, 13-inch, 2019) - { "MacBookAir8,2", "MBA82.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-226CB3C6A851A671", // Intel Core i5-8210Y @ 1.60 GHz - "MacBook Air", "1.0", "FVFXJHACJK77", "Air-Enclosure", - { 0, 0, 0, 0, 0, 0 }, NULL, "j140a", 0 }, // need serial + { "MacBookAir8,2", "MBA82.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-226CB3C6A851A671", // Intel Core i5-8210Y @ 1.60 GHz + "MacBook Air", "1.0", "FVFXJHACLYWM", "Air-Enclosure", + { 0, 0, 0, 0, 0, 0 }, NULL, "j140a", 0 }, //Macmini1,1 / Mac mini (Early 2006) { "Macmini1,1", "MM11.88Z.0055.B08.0610121326", NULL, "Mac-F4208EC8", // Intel Core 2 Duo T2300 @ 1.67 GHz "Mac mini", "1.0", "W8702N1JU35", "Mini-Aluminum", @@ -318,19 +318,19 @@ PLATFORMDATA ApplePlatformData[] = "Mac mini", "1.0", "C07GWHACDKDJ", "Mini-Aluminum", { 0x01, 0x77, 0x0f, 0, 0, 0x00 }, "NA", "NA", 0x7d005 }, // need rBR RPlt EPCI //Macmini6,1 / Mac mini (Late 2012) - { "Macmini6,1", "MM61.88Z.F000.B00.1905251343", "280.0.0.0.0", "Mac-031AEE4D24BFF0B1", // Intel Core i5-3210M @ 2.50 GHz + { "Macmini6,1", "MM61.88Z.F000.B00.1907241132", "281.0.0.0.0", "Mac-031AEE4D24BFF0B1", // Intel Core i5-3210M @ 2.50 GHz "Mac mini", "1.0", "C07JNHACDY3H", "Mini-Aluminum", { 0x02, 0x07, 0x0f, 0, 0, 0x00 }, "NA", "NA", 0x7d006 }, // need rBR RPlt EPCI //Macmini6,2 / Mac mini Server (Late 2012) - { "Macmini6,2", "MM61.88Z.F000.B00.1906131921", "280.0.0.0.0", "Mac-F65AE981FFA204ED", // Intel Core i7-3615QM @ 2.30 GHz + { "Macmini6,2", "MM61.88Z.F000.B00.1907241132", "281.0.0.0.0", "Mac-F65AE981FFA204ED", // Intel Core i7-3615QM @ 2.30 GHz "Mac mini", "1.0", "C07JD041DWYN", "Mini-Aluminum", { 0x02, 0x08, 0x0f, 0, 0, 0x01 }, "j50s", "j50s", 0x7d006 }, //Macmini7,1 / Mac mini (Late 2014) - { "Macmini7,1", "MM71.88Z.F000.B00.1906140923", "244.0.0.0.0", "Mac-35C5E08120C7EEAF", // Intel Core i5-4278U @ 2.60 GHz + { "Macmini7,1", "MM71.88Z.F000.B00.1907221630", "245.0.0.0.0", "Mac-35C5E08120C7EEAF", // Intel Core i5-4278U @ 2.60 GHz "Mac mini", "1.0", "C02NN7NHG1J0", "Mini-Aluminum", { 0x02, 0x24, 0x0f, 0, 0, 0x32 }, "j64", "j64", 0xf04008 }, //Macmini8,1 / Mac mini (2018) - { "Macmini8,1", "MM81.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-7BA5B2DFE22DDD8C", // Intel Core i7-8700B @ 3.20 GHz + { "Macmini8,1", "MM81.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-7BA5B2DFE22DDD8C", // Intel Core i7-8700B @ 3.20 GHz "Mac mini", "1.0", "C07XL9WEJYVX", "Mini-Aluminum", { 0, 0, 0, 0, 0, 0 }, NULL, "j174", 0 }, //iMac4,1 / iMac (20-inch, Early 2006) @@ -390,71 +390,71 @@ PLATFORMDATA ApplePlatformData[] = "iMac", "1.9", "W88GG136DHJQ", "iMac-Aluminum", { 0x01, 0x72, 0x0f, 0, 0, 0x02 }, "k62", "k62", 0x75005 }, //iMac13,1 / iMac (21.5-inch, Late 2012) - { "iMac13,1", "IM131.88Z.F000.B00.1906132045", "287.0.0.0.0", "Mac-00BE6ED71E35EB86", // Intel Core i7-3770S @ 3.10 GHz + { "iMac13,1", "IM131.88Z.F000.B00.1907241303", "288.0.0.0.0", "Mac-00BE6ED71E35EB86", // Intel Core i7-3770S @ 3.10 GHz "iMac", "1.0", "C02JA041DNCT", "iMac-Aluminum", { 0x02, 0x09, 0x0f, 0, 0, 0x05 }, "d8", "d8", 0x78006 }, //iMac13,2 / iMac (27-inch, Late 2012) - { "iMac13,2", "IM131.88Z.F000.B00.1906132045", "287.0.0.0.0", "Mac-FC02E91DDD3FA6A4", // Intel Core i5-3470 @ 3.20 GHz + { "iMac13,2", "IM131.88Z.F000.B00.1907241303", "288.0.0.0.0", "Mac-FC02E91DDD3FA6A4", // Intel Core i5-3470 @ 3.20 GHz "iMac", "1.0", "C02JB041DNCW", "iMac-Aluminum", { 0x02, 0x11, 0x0f, 0, 0, 0x16 }, "d8", "d8", 0x79006 }, //iMac13,3 / iMac (21.5-inch, Early 2013) - not exists in server - { "iMac13,3", "IM131.88Z.F000.B00.1906132045", "287.0.0.0.0", "Mac-7DF2A3B5E5D671ED", // Intel Core i3-3225 @ 3.30 GHz + { "iMac13,3", "IM131.88Z.F000.B00.1907241303", "288.0.0.0.0", "Mac-7DF2A3B5E5D671ED", // Intel Core i3-3225 @ 3.30 GHz "iMac", "1.0", "C02KVHACFFYV", "iMac-Aluminum", { 0x02, 0x13, 0x0f, 0, 0, 0x15 }, "d8", "d8", 0x79006 }, // need EPCI //iMac14,1 / iMac (21.5-inch, Late 2013) - { "iMac14,1", "IM141.88Z.F000.B00.1906132045", "139.0.0.0.0", "Mac-031B6874CF7F642A", // Intel Core i5-4570R @ 2.70 GHz + { "iMac14,1", "IM141.88Z.F000.B00.1907241132", "140.0.0.0.0", "Mac-031B6874CF7F642A", // Intel Core i5-4570R @ 2.70 GHz "iMac", "1.0", "D25LHACKF8J2", "iMac-Aluminum", { 0x02, 0x14, 0x0f, 0, 0, 0x24 }, "j16j17", "j16", 0x79007 }, //iMac14,2 / iMac (27-inch, Late 2013) - { "iMac14,2", "IM142.88Z.F000.B00.1906131923", "139.0.0.0.0", "Mac-27ADBB7B4CEE8E61", // Intel Core i5-4570 @ 3.20 GHz + { "iMac14,2", "IM142.88Z.F000.B00.1907241133", "140.0.0.0.0", "Mac-27ADBB7B4CEE8E61", // Intel Core i5-4570 @ 3.20 GHz "iMac", "1.0", "D25LHACKF8JC", "iMac-Aluminum", { 0x02, 0x15, 0x0f, 0, 0, 0x07 }, "j16j17", "j17", 0x7a007 }, //iMac14,3 / iMac (21.5-inch, Late 2013) - { "iMac14,3", "IM143.88Z.F000.B00.1906131924", "139.0.0.0.0", "Mac-77EB7D7DAF985301", // Intel Core i5-4570S @ 2.90 GHz + { "iMac14,3", "IM143.88Z.F000.B00.1907241133", "140.0.0.0.0", "Mac-77EB7D7DAF985301", // Intel Core i5-4570S @ 2.90 GHz "iMac", "1.0", "D25LHACKF8J3", "iMac-Aluminum", { 0x02, 0x17, 0x0f, 0, 0, 0x07 }, "j16g", "j16g", 0x7a007 }, // need EPCI //iMac14,4 / iMac (21.5-inch, Mid 2014) - { "iMac14,4", "IM144.88Z.F000.B00.1906131929", "199.0.0.0.0", "Mac-81E3E92DD6088272", // Intel Core i5-4260U @ 1.40 GHz + { "iMac14,4", "IM144.88Z.F000.B00.1907241140", "200.0.0.0.0", "Mac-81E3E92DD6088272", // Intel Core i5-4260U @ 1.40 GHz "iMac", "1.0", "D25LHACKFY0T", "iMac-Aluminum", { 0x02, 0x21, 0x0f, 0, 0, 0x92 }, "j70", "j70", 0x7a007 }, // need EPCI //iMac15,1 / iMac (Retina 5K, 27-inch, Mid 2015) - { "iMac15,1", "IM151.88Z.F000.B00.1906132222", "229.0.0.0.0", "Mac-42FD25EABCABB274", // Intel Core i5-4690 @ 3.50 GHz + { "iMac15,1", "IM151.88Z.F000.B00.1907241312", "231.0.0.0.0", "Mac-42FD25EABCABB274", // Intel Core i5-4690 @ 3.50 GHz "iMac", "1.0", "C02Q6HACFY10", "iMac-Aluminum", { 0x02, 0x22, 0x0f, 0, 0, 0x16 }, "j78j78am", "j78", 0xf00008 }, //iMac16,1 / iMac (21.5-inch, Late 2015) - { "iMac16,1", "IM161.88Z.F000.B00.1906140921", "229.0.0.0.0", "Mac-A369DDC4E67F1C45", // Intel Core i5-5250U @ 1.60 GHz + { "iMac16,1", "IM161.88Z.F000.B00.1907231133", "231.0.0.0.0", "Mac-A369DDC4E67F1C45", // Intel Core i5-5250U @ 1.60 GHz "iMac", "1.0", "C02QQHACGF1J", "iMac-Aluminum", { 0x02, 0x31, 0x0f, 0, 0, 0x36 }, "j117", "j117", 0xf00008 }, // need EPCI //iMac16,2 / iMac (Retina 4K, 21.5-inch, Late 2015) - { "iMac16,2", "IM162.88Z.F000.B00.1906140921", "229.0.0.0.0", "Mac-FFE5EF870D7BA81A", // Intel Core i5-5575R @ 2.80 GHz + { "iMac16,2", "IM162.88Z.F000.B00.1907231132", "231.0.0.0.0", "Mac-FFE5EF870D7BA81A", // Intel Core i5-5575R @ 2.80 GHz "iMac", "1.0", "C02PNHACGG78", "iMac-Aluminum", { 0x02, 0x32, 0x0f, 0, 0, 0x20 }, "j94", "j94", 0xf00008 }, // need EPCI //iMac17,1 / iMac (Retina 5K, 27-inch, Late 2015) - { "iMac17,1", "IM171.88Z.F000.B00.1906171551", "170.0.0.0.0", "Mac-B809C3757DA9BB8D", // Intel Core i7-6700K @ 4.00 GHz + { "iMac17,1", "IM171.88Z.F000.B00.1907221647", "171.0.0.0.0", "Mac-B809C3757DA9BB8D", // Intel Core i7-6700K @ 4.00 GHz "iMac17,1", "1.0", "C02QFHACGG7L", "iMac-Aluminum", { 0x02, 0x33, 0x0f, 0, 0, 0x10 }, "j95j95am", "j95", 0xf0c008 }, //Note: i5 but for i7 { 0x02, 0x34, 0x0F, 0, 0, 0x02 } //iMac18,1 / iMac (21.5-inch, 2017) - { "iMac18,1", "IM181.88Z.F000.B00.1906171613", "175.0.0.0.0", "Mac-4B682C642B45593E", // Intel Core i5-7360U @ 2.30 GHz + { "iMac18,1", "IM181.88Z.F000.B00.1907221701", "176.0.0.0.0", "Mac-4B682C642B45593E", // Intel Core i5-7360U @ 2.30 GHz "iMac", "1.0", "C02TDHACH7JY", "iMac-Aluminum", { 0x02, 0x39, 0x0f, 0, 0, 0x06 }, "j133_4_5", "j135", 0xf07009 }, // need RPlt EPCI //iMac18,2 / iMac (Retina 4K, 21.5-inch, 2017) - { "iMac18,2", "IM183.88Z.F000.B00.1906171613", "175.0.0.0.0", "Mac-77F17D7DA9285301", // Intel Core i5-7500 @ 3.40 GHz + { "iMac18,2", "IM183.88Z.F000.B00.1907221701", "176.0.0.0.0", "Mac-77F17D7DA9285301", // Intel Core i5-7500 @ 3.40 GHz "iMac", "1.0", "C02TDHACJ1G5", "iMac-Aluminum", { 0x02, 0x40, 0x0f, 0, 0, 0x00 }, "j133_4_5", "j135", 0xf07009 }, // need RPlt EPCI //iMac18,3 / iMac (Retina 5K, 27-inch, 2017) - { "iMac18,3", "IM183.88Z.F000.B00.1906171613", "175.0.0.0.0", "Mac-BE088AF8C5EB4FA2", // Intel Core i7-7700K @ 4.20 GHz + { "iMac18,3", "IM183.88Z.F000.B00.1907221701", "176.0.0.0.0", "Mac-BE088AF8C5EB4FA2", // Intel Core i7-7700K @ 4.20 GHz "iMac", "1.0", "C02TDHACJ1GJ", "iMac-Aluminum", { 0x02, 0x41, 0x0f, 0, 0, 0x01 }, "j133_4_5", "j135", 0xf07009 }, //iMac19,1 / iMac (Retina 5K, 27-inch, 2019) - { "iMac19,1", "IM191.88Z.F000.B00.1906161737", "220.270.93.0.0", "Mac-AA95B1DDAB278B95", // Intel Core i9-9900K @ 3.60 GHz + { "iMac19,1", "IM191.88Z.F000.B00.1908050033", "1037.0.52.0.0", "Mac-AA95B1DDAB278B95", // Intel Core i9-9900K @ 3.60 GHz "iMac", "1.0", "C02Y9HACJV3P", "iMac-Aluminum", { 0x02, 0x46, 0x0f, 0x00, 0x00, 0x12 }, "j138_9", "j138", 0xf0d009 }, //iMac19,2 / iMac (Retina 4K, 21.5-inch, 2019) - { "iMac19,2", "IM191.88Z.F000.B00.1906161737", "220.270.93.0.0", "Mac-63001698E7A34814", // Intel Core i7-8700B @ 3.20 GHz + { "iMac19,2", "IM191.88Z.F000.B00.1908050033", "1037.0.52.0.0", "Mac-63001698E7A34814", // Intel Core i7-8700B @ 3.20 GHz "iMac", "1.0", "C02Y9HACJWDW", "iMac-Aluminum", { 0x02, 0x46, 0x0f, 0x00, 0x00, 0x12 }, "j138_9", "j138", 0xf0d009 }, //iMacPro1,1 /iMac Pro (2017) - { "iMacPro1,1", "IMP11.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-7BA5B2D9E42DDD94", // Intel Xeon W-2140B CPU @ 3.20 GHz + { "iMacPro1,1", "IMP11.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-7BA5B2D9E42DDD94", // Intel Xeon W-2140B CPU @ 3.20 GHz "iMac Pro", "1.0", "C02VVHACHX87", "iMacPro-Aluminum", { 0, 0, 0, 0, 0, 0 }, NULL, "j137", 0 }, //MacPro1,1 / Mac Pro @@ -478,11 +478,11 @@ PLATFORMDATA ApplePlatformData[] = "MacPro", "1.2", "C07J77F7F4MC", "Pro-Enclosure", // Note: C07J50F7F4MC CK04000AHFC CG154TB9WU3 { 0x01, 0x39, 0x0f, 0, 0, 0x11 }, "k5", "k5", 0x7c002 }, //MacPro6,1 / Mac Pro (Late 2013) - { "MacPro6,1", "MP61.88Z.F000.B00.1906132222", "132.0.0.0.0", "Mac-F60DEB81FF30ACF6", // Intel Xeon E5-1650 v2 @ 3.50 GHz + { "MacPro6,1", "MP61.88Z.F000.B00.1907241309", "133.0.0.0.0", "Mac-F60DEB81FF30ACF6", // Intel Xeon E5-1650 v2 @ 3.50 GHz "MacPro", "1.0", "F5KLA770F9VM", "Pro-Enclosure", { 0x02, 0x20, 0x0f, 0, 0, 0x18 }, "j90", "j90", 0xf0f006 }, //MacPro7,1 / Mac Pro (Late 2019) - { "MacPro7,1", "MP71.88Z.F000.B00.1907261958", "1037.0.39.151.1", "Mac-27AD2F918AE68F61", // Intel Xeon W-3245M CPU @ 3.20 GHz + { "MacPro7,1", "MP71.88Z.F000.B00.1908202128", "1037.0.60.0.0", "Mac-27AD2F918AE68F61", // Intel Xeon W-3245M CPU @ 3.20 GHz "MacPro", "1.0", "C02VVHACF9VM", "Pro-Enclosure", { 0, 0, 0, 0, 0, 0 }, NULL, "j16O", 0 }, // need serial //Xserve1,1 / Xserve (Late 2006)