external configuration file

This commit is contained in:
Jack
2020-03-06 00:01:11 +02:00
parent 7fcf1ec9a5
commit d027250a35
+38 -14
View File
@@ -2,7 +2,7 @@
# Push-button installer of macOS on VirtualBox # Push-button installer of macOS on VirtualBox
# (c) myspaghetti, licensed under GPL2.0 or higher # (c) myspaghetti, licensed under GPL2.0 or higher
# url: https://github.com/myspaghetti/macos-guest-virtualbox # url: https://github.com/myspaghetti/macos-guest-virtualbox
# version 0.87.8 # version 0.88.0
# Requirements: 40GB available storage on host # Requirements: 40GB available storage on host
# Dependencies: bash >= 4.3, xxd, gzip, unzip, wget, dmg2img, # Dependencies: bash >= 4.3, xxd, gzip, unzip, wget, dmg2img,
@@ -25,7 +25,7 @@ resolution="1280x800" # VM display resolution
# message if they do not match the genuine Mac exactly. # message if they do not match the genuine Mac exactly.
# Non-genuine yet genuine-like parameters usually work. # Non-genuine yet genuine-like parameters usually work.
# system_profiler SPHardwareDataType # system_profiler SPHardwareDataType
DmiSystemFamily="MacBook Pro" # Model Name DmiSystemFamily="MacBook Pro" # Model Name
DmiSystemProduct="MacBookPro11,2" # Model Identifier DmiSystemProduct="MacBookPro11,2" # Model Identifier
DmiSystemSerial="NO_DEVICE_SN" # Serial Number (system) DmiSystemSerial="NO_DEVICE_SN" # Serial Number (system)
@@ -33,17 +33,24 @@ DmiSystemUuid="CAFECAFE-CAFE-CAFE-CAFE-DECAFFDECAFF" # Hardware UUID
DmiOEMVBoxVer="string:1" # Apple ROM Info DmiOEMVBoxVer="string:1" # Apple ROM Info
DmiOEMVBoxRev="string:.23456" # Apple ROM Info DmiOEMVBoxRev="string:.23456" # Apple ROM Info
DmiBIOSVersion="string:MBP7.89" # Boot ROM Version DmiBIOSVersion="string:MBP7.89" # Boot ROM Version
# ioreg -l | grep -m 1 board-id # ioreg -l | grep -m 1 board-id
DmiBoardProduct="Mac-3CBD00234E554E41" DmiBoardProduct="Mac-3CBD00234E554E41"
# nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB # nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB
DmiBoardSerial="NO_LOGIC_BOARD_SN" DmiBoardSerial="NO_LOGIC_BOARD_SN"
MLB="${DmiBoardSerial}" MLB="${DmiBoardSerial}"
# nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM # nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
ROM='%aa*%bbg%cc%dd' ROM='%aa*%bbg%cc%dd'
# ioreg -l -p IODeviceTree | grep \"system-id # ioreg -l -p IODeviceTree | grep \"system-id
SYSTEM_UUID="aabbccddeeff00112233445566778899" SYSTEM_UUID="aabbccddeeff00112233445566778899"
# csrutil status # csrutil status
SYSTEM_INTEGRITY_PROTECTION='10' # '10' - enabled, '77' - disabled SYSTEM_INTEGRITY_PROTECTION='10' # '10' - enabled, '77' - disabled
# Additional configurations may be saved in external files and loaded with the
# following command prior to running the script:
# export macos_vm_vars_file=/path/to/variable_assignment_file
# "variable_assignment_file" is a plain text file that contains zero or more
# lines with a variable assignment for any variable specified above.
[[ -r "${macos_vm_vars_file}" ]] && source "${macos_vm_vars_file}"
} }
# welcome message # welcome message
@@ -64,11 +71,13 @@ The installation requires about '"${highlight_color}"'40GB'"${default_color}"' o
temporary installation files and 20GB for the virtual machine'"'"'s dynamically temporary installation files and 20GB for the virtual machine'"'"'s dynamically
allocated storage disk image. allocated storage disk image.
The script can be resumed, as described when running the following command: Documentation about optional configuration, resuming the script by stages, and
other topics can be viewed with the following command:
' '
would_you_like_to_know_less would_you_like_to_know_less
printf ' printf '
'"${highlight_color}"'Press enter to review the script settings.'"${default_color}" '"${highlight_color}"'Press enter to review the script configuration.'"${default_color}"
clear_input_buffer_then_read clear_input_buffer_then_read
# custom settings prompt # custom settings prompt
@@ -81,7 +90,7 @@ memory_size='"${memory_size}"' # VM RAM in MB, minimum 2048
gpu_vram='"${gpu_vram}"' # VM video RAM in MB, minimum 34, maximum 128 gpu_vram='"${gpu_vram}"' # VM video RAM in MB, minimum 34, maximum 128
resolution="'"${resolution}"'" # VM display resolution resolution="'"${resolution}"'" # VM display resolution
These values may be customized by editing them at the top of the script file. These values may be customized as described in the documentation.
'"${highlight_color}"'Press enter to continue, CTRL-C to exit.'"${default_color}" '"${highlight_color}"'Press enter to continue, CTRL-C to exit.'"${default_color}"
clear_input_buffer_then_read clear_input_buffer_then_read
@@ -953,15 +962,30 @@ ${low_contrast_color}configure_vm create_nvram_files create_macos_installation_f
The above stages might be used to update the EFI and NVRAM variables required The above stages might be used to update the EFI and NVRAM variables required
for iCloud and iMessage connectivity and other Apple-connected apps. for iCloud and iMessage connectivity and other Apple-connected apps.
${highlight_color}Configuration${default_color}
The script's default configuration is stored in the ${low_contrast_color}set_variables()${default_color} function at
the top of the script. No manual configuration is required to run the script.
The configuration may be manually edited either by editing the variable
assignment in ${low_contrast_color}set_variables()${default_color} or by running the following
command prior to running the script:
${low_contrast_color}export macos_vm_vars=/path/to/variable_assignment_file${default_color}
\"${low_contrast_color}variable_assignment_file${default_color}\" is a plain text file that contains zero or more
lines with a variable assignment for any variable specified in ${low_contrast_color}set_variables()${default_color},
for example ${low_contrast_color}macOS_release_name=\"HighSierra\"${default_color} or ${low_contrast_color}DmiSystemFamily=\"iMac\"${default_color}
${highlight_color}iCloud and iMessage connectivity${default_color} ${highlight_color}iCloud and iMessage connectivity${default_color}
iCloud, iMessage, and other connected Apple services require a valid device iCloud, iMessage, and other connected Apple services require a valid device
name and serial number, board ID and serial number, and other genuine name and serial number, board ID and serial number, and other genuine
(or genuine-like) Apple parameters. These parameters may be edited at the top (or genuine-like) Apple parameters. These parameters may be edited at the top
of the script, accompanied by an explanation. Editing them is not required when of the script or loaded through a configuration file as described in the
installing or running macOS, only when connecting to the iCould app, iMessage, section above. Assigning these parameters is not required when installing or
and other apps that authenticate the device with Apple. running macOS, only when connecting to the iCould app, iMessage, and other
apps that authenticate the device with Apple.
The variables needed to be assigned in the script are the following: These are the variables that are required for iMessage connectivity:
${low_contrast_color}DmiSystemFamily # Model name${default_color} ${low_contrast_color}DmiSystemFamily # Model name${default_color}
${low_contrast_color}DmiSystemProduct # Model identifier${default_color} ${low_contrast_color}DmiSystemProduct # Model identifier${default_color}