Created
October 22, 2023 12:57
-
-
Save b00t0x/4e081b3c193fa8f599022ea3b897fdd5 to your computer and use it in GitHub Desktop.
itlwmで任意のファームウェアを個別にビルドする&指定ファームウェアを束ねてビルドする
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'fileutils' | |
firmwares = { | |
# 'AX411NGW' => 'iwlwifi-so-a0-gf4-a0', | |
'AX210NGW' => 'iwlwifi-ty-a0-gf-a0', | |
'AX200NGW' => 'iwlwifi-cc-a0', | |
'9560NGW' => 'iwm-9000', | |
'8265NGW' => 'iwm-8265', | |
# '3160NGW' => 'iwm-3160' | |
} | |
build_cmd = 'xcodebuild -configuration Release -scheme "AirportItlwm (all)" -derivedDataPath build 2> /dev/null' | |
FileUtils.cd(File.dirname(File.expand_path(__FILE__))) | |
FileUtils.mv('itlwm/firmware', 'itlwm/firmware_all') | |
FileUtils.mkdir_p('itlwm/firmware_combined') | |
FileUtils.rm_rf('kexts') | |
versions = open('itlwm.xcodeproj/project.pbxproj').read.split("\n").map{ |line| %r{/\* AirportItlwm-(?<version>[^-]+) \*/,} =~ line ? version : nil }.compact | |
firmwares.each do |card, prefix| | |
FileUtils.mkdir_p('itlwm/firmware') | |
FileUtils.rm('include/FwBinary.cpp') | |
Dir.glob("itlwm/firmware_all/#{prefix}*").each do |firmware| | |
FileUtils.cp(firmware, 'itlwm/firmware/') | |
FileUtils.cp(firmware, 'itlwm/firmware_combined/') | |
end | |
puts "building kexts for #{card}..." | |
`#{build_cmd}` | |
FileUtils.mkdir_p("kexts/#{card}") | |
versions.each do |version| | |
dest = "kexts/#{card}/AirportItlwm-#{version.gsub(' ', '')}.kext" | |
FileUtils.mv("build/Build/Products/Release/#{version}/AirportItlwm.kext", dest) | |
puts " created: #{dest}" | |
end | |
puts '' | |
FileUtils.rm_r('itlwm/firmware') | |
end | |
FileUtils.mv('itlwm/firmware_combined', 'itlwm/firmware') | |
FileUtils.rm('include/FwBinary.cpp') | |
puts 'building kexts for all selected firmwares...' | |
`#{build_cmd}` | |
FileUtils.mkdir_p('kexts/_all_') | |
versions.each do |version| | |
dest = "kexts/_all_/AirportItlwm-#{version.gsub(' ', '')}.kext" | |
FileUtils.mv("build/Build/Products/Release/#{version}/AirportItlwm.kext", dest) | |
puts " created: #{dest}" | |
end | |
FileUtils.rm_r('itlwm/firmware') | |
FileUtils.mv('itlwm/firmware_all', 'itlwm/firmware') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment