Windows- ja OS X-yhteensopiva Python-skripti, joka hakee Applen tai omalta ohjelmistopäivityspalvelimelta tietyn Mac-mallin Boot Camp ESD:n (”Electronic Software Distribution”). Se purkaa litteän paketin sisältämät monikerroksiset arkistot, ja jos skripti ajetaan Windowsissa --install-vaihtoehdolla, se ajaa myös 64-bittisen MSI-asennusohjelman.

Windowsissa arkistot puretaan 7-Zip-ohjelmalla, ja 7-Zip MSI ladataan ja asennetaan ja poistetaan myöhemmin, jos Brigadier asensi sen. Tämä työkalu käytti ennen dmg2img:tä suorittaakseen tiedostojen purkamisen Applen WindowsSupport.dmg-tiedostosta, mutta uudemmat versiot 7-Zipistä ovat sisältäneet täydellisemmän tuen DMG-tiedostoille, joten dmg2img:tä ei näytä enää tarvittavan.

Tämä on kirjoitettu kahdesta syystä:

  1. Haluaisimme ylläpitää mahdollisimman vähän Windows-järjestelmäkuvia, mutta Applelta on tyypillisesti saatavana 3-5 BootCampESD-pakettia tiettynä ajankohtana, ja ne on kohdennettu tietyille mallisarjoille. Orca-työkalulla on mahdollista muokata MSI:n ominaisuuksia ja poistaa mallin tarkistus käytöstä, mutta harvoin on tapauksia, joissa yksi asennusohjelma sisältää kaikki ajurit. Apple voi jo nyt ladata oikean asennusohjelman käynnistettyä konemallia varten OS X:ssä Boot Camp -avustajan avulla, joten ei ole mitään syytä, miksi emme voisi tehdä samaa Windowsissa.
  2. Joskus haluamme vain ladata ja purkaa tietyn mallin asennusohjelman kopion. Vaiheet tämän tekemiseen manuaalisesti ovat työläitä, ja niitä on paljon. Keväästä 2013 lähtien Apple on tarjonnut useita Boot Camp -asennuspaketteja tukilataussivullaan, mutta ne ovat edelleen jakautuneet moniin eri mallisarjoihin, ja oikean paketin varmistaminen on edelleen hankalaa.

Alun perin Boot Camp -asennuspaketti suunniteltiin ajettavaksi kuvankäsittelyn jälkeisenä askeleena Boot Campin käyttöönotossa Mac-tietokoneisiin, mutta koska se vaatii verkkoyhteyden, järjestelmässä on oltava jo valmiiksi verkkoajuri. (Katso varoitukset alla)

Tärkeä (!) huomautus Brigadierin tuesta

Brigadier on tuottanut vähemmän hyviä tuloksia joidenkin ajuripakettien ja laitteistomallien yhdistelmien kanssa Boot Camp 5:n viimeisimmissä versioissa ja nyt Boot Camp 6:ssa. Jotkut ovat vahvistaneet ongelmia Boot Camp 6:n ja Windows 7:n kanssa yleensä, joten nämä eivät välttämättä ole täysin Brigadierin vika. Boot Campin setup.exe:n tutkiminen osoittaa minulle, että tämä suoritettava ohjelma suorittaa useita tehtäviä ja luo jonkinlaisen ympäristön BootCamp.msi:n mahdollista suorittamista varten, mitä emme aina saa aikaan Brigadierin yksinkertaisella msiexec:n kutsumisella MSI:n asentamiseksi suoraan.

En tunne Windowsin sisäisiä asioita tarpeeksi hyvin ymmärtääkseni, miten pystyn suorittamaan täysin automatisoidun version kaikesta siitä, mitä setup.exe itse asiassa tekee (sen lisäksi, että se suorittaa msiexec /i /qr:n MSI:ssä). Esimerkiksi tässä PR:ssä ehdotetaan, että parempiin tuloksiin päästään käyttämällä erilaisia ”quiet”-vaihtoehtoja msiexec:lle, mutta setup.exe:n purkaminen osoittaa, että se itse asiassa suorittaa /qr:n, kuten myös nykyisen master-haaran koodi. Tällaiseen kysymykseen en koe omaavani tarpeeksi tietoa, jotta voisin yrittää vastata.

On ollut outoja ongelmia, joita olen kokenut myös pari vuotta sitten. Esimerkiksi yksittäinen ajurin asennusohjelma (Intelin piirisarjaan liittyvä), joka pukkaa esiin sarjan WinRAR SFX -virheitä johtuen siitä, että se yrittää suorittaa peräkkäin kaikki ajurin lokalisointitiedostot (jotka eivät ole edes suoritettavia). Pelkkä klikkaaminen näiden valintaikkunoiden läpi saa asennuksen lopulta jatkumaan, mutta siihen asti prosessi on estynyt. Tätä virhettä ei tapahdu, kun käyttäjä ajaa manuaalisesti setup.exe, mutta en ymmärrä, miksi.

Vaikka minulla on jonkin verran toivoa siitä, että pystyn ratkaisemaan nämä ongelmat, ympäristöni kaksoiskäynnistyslaboratorioiden käyttötapaukset ovat vähenemässä, joten on vaikea perustella, että tarvittava aika kuluu näiden ongelmien tutkimiseen. Jos joku, joka on perehtynyt setup.exe-tyyppisten asennuskääreiden ja MSI-asennusohjelmien kääntämiseen ja Windows-järjestelmien hallintaan yleensä, on kiinnostunut puuttumaan Boot Camp -ajurien hiljaisen asennuksen tukeen tässä työkalussa, olisin kiitollinen avusta! Kohdassa BootCamp.msi on useita asennusohjelman ominaisuuksia, joista voi olla apua myös tässä asiassa.

Käyttö

Ajoita Brigadier ilman asetuksia lataamaan ja purkamaan tähän malliin sopiva ESD nykyiseen työhakemistoon. OS X:ssä ESD pidetään .dmg-muodossa, jotta se on helppo polttaa levylle; Windowsissa ajuritiedostot puretaan.

Ajoita se --model-vaihtoehdolla määrittääksesi vaihtoehtoisen mallin muodossa MacPro3,1 jne.

Ajoita se --install-vaihtoehdon kanssa sekä ladataksesi että asentaaksesi, jolloin ajurit poistetaan asennuksen jälkeen. Tämä toimii ilmeisesti vain Windowsissa. Tämä vaihtoehto on tehty Boot Camp -ajurien automatisoitujen asennusten tekemistä varten.

Sijoita brigadier.plist-tiedosto samaan kansioon skriptin kanssa, jotta .sucatalog-URL-osoite voidaan korvata osoittamalla sisäiseen Software Update Server -luetteloon (yksityiskohdat alla).

Lisävaihtoehdot näkyvät alla.

Hankkiminen

Löydät valmiiksi käännetyn binääritiedoston Windowsia varten julkaisujen alueelta. Tästä voi olla hyötyä, jos sinulla ei ole vielä Pythonia asennettuna Windowsissa. Tämä on rakennettu käyttäen PyInstalleria. Lisätietoja sen rakentamisesta itse alla.

Se voidaan myös ajaa suoraan Git-checkoutista joko OS X:llä tai Windowsilla.

Konfigurointi

Parien komentorivivivaihtoehtojen lisäksi:

Usage: brigadier Options: -h, --help show this help message and exit -m MODEL, --model=MODEL System model identifier to use (otherwise this machine's model is used). -i, --install After the installer is downloaded, perform the install automatically. Can be used on Windows only. -o OUTPUT_DIR, --output-dir=OUTPUT_DIR Base path where the installer files will be extracted into a folder named after the product, ie. 'BootCamp-041-1234'. Uses the current directory if this option is omitted. -k, --keep-files Keep the files that were downloaded/extracted. Useful only with the '--install' option on Windows.

Voit myös luoda brigadier.plist XML-plist-tiedoston ja sijoittaa sen samaan hakemistoon skriptin kanssa. Se tukee tällä hetkellä yhtä avainta: CatalogURL, merkkijono, joka osoittaa sisäiseen SUS-katalogin URL-osoitteeseen, joka sisältää BootCampESD-paketteja. Katso esimerkki tästä reposta.

Suorittaminen Sysprep FirstLogonCommand

Boot Camp -ajureiden suorittaminen on yleistä kuvantamisen jälkeisen Sysprep-vaiheen aikana, jotta sama kuva voidaan ottaa käyttöön eri malleissa ottamatta huomioon mallia ja tarvittavaa Boot Camp -pakettia. Brigadier näyttää käyttäytyvän SysPrep FirstLogonCommand -komennon yhteydessä.

Skriptin suorittaessa tässä skenaariossa on yksi workaround, jossa nykyinen työskentely olisi normaalisti \windows\system32. Testeissäni 64-bittisessä järjestelmässä MSI pysähtyi yrittäessään etsiä asennuskomponenttejaan, koska Windows haarauttaa System32-kansionsa SysWoW64:ksi 32-bittisiä sovelluksia varten. Kun skripti havaitsee tämän työhakemiston ilman, että --output-dir -vaihtoehto ohittaa sen, se asettaa tulostushakemiston järjestelmän juureen, eli %SystemRoot%\.

Oletusarvoisesti, kun käytetään --install -vaihtoehtoa, skripti siivoaa poimimansa tiedostot asennuksen jälkeen, ellei --keep-files -vaihtoehtoa anneta, joten ellet halua pitää tiedostoja tallessa, sinun ei pitäisi joutua siivoamaan niitä.

Suorittaminen/rakentaminen lähdekoodista Windowsissa

Jos haluat mieluummin suorittaa sen tavallisena Python-skriptinä, tarvitset Python for Windowsin (tämä testattiin viimeisimmällä 2.7-versiolla) suorittaaksesi skriptin.

Jos haluat mieluummin rakentaa sen itse, voit käyttää mukana tulevaa build-skriptiä. Se vaatii Pythonin ja vastaavan version pywin32:sta. Se hoitaa PyInstallerin lataamisen puolestasi. Suorita se vain ilman argumentteja, ja se rakentaa zip-tiedoston nykyiseen työhakemistoon:

c:\python27\python build_windows_exe.py

Pakkauksen purkamisen yksityiskohdat Windowsissa

Os X:ssä meillä on natiivit hdiutil ja pkgutil-komennot, jotka hoitavat ajuritiedostojen purkamisen. Windowsissa me:

  1. Tarkistamme, onko 7-Zip jo asennettu – jos ei, lataamme ja asennamme sen
  2. Puramme BootCampESD:n.pkg xar -arkisto 7-Zipillä
  3. Puretaan Payload-arkisto 7-Zipillä, kerran gzip-pakkauksen purkamiseen ja uudelleen cpio-arkiston purkamiseen
  4. Käytä 7-Zipiä purkaaksesi ajuritiedostot pkg:n sisältämästä WindowsSupport.dmg tiedostosta
  5. Poista 7-Zip, jos asensimme sen

Varoituksia

  • Se vaatii verkkoyhteyden, mikä edellyttää siis toimivan verkko-ohjaimen olemassaoloa. Yksinkertaisin tapa, jonka olen löytänyt, on sijoittaa BootCampESD:n eri verkkoajurit ”BootCamp”- (tai vastaavan) kansion sisälle C:\Windows\INF sysprepattuun kuvaan. Tämä kansio on laiteajurien oletushakupaikka, ja sen pitäisi automaattisesti havaita ja asentaa tässä sijaitsevat ajurit kaikille tuntemattomille laitteistoille. Voit myös muuttaa rekisteriavainta DevicePath lisätäksesi mukautetun sijainnin, mutta olemassa olevan INF-kansion käyttäminen tarkoittaa, että tiedostojen kopioinnin lisäksi ei tarvita muita muutoksia olemassa olevan kuvan ajureiden päivittämiseksi, joten tämä voidaan tehdä palauttamatta kuvaa ja käynnistämättä sitä vain ajurin asentamiseksi. Offline-ajurihuolto Windowsin ja DISM:n avulla on helppoa WIM-kuville, mutta useimmat ylläpitäjät eivät todennäköisesti ota käyttöön WIM-kuvia Mac-tietokoneille, vaan käyttävät pikemminkin työkaluja, jotka kietovat ntfsprogsin.
  • Se ei tällä hetkellä suorita juuri lainkaan virheenkäsittelyä.
  • Seitsemän Zipin lataus tapahtuu julkisesta URL-osoitteesta, joka on kovakoodattu skriptiin. Pian brigadier.plist tukee näiden URL-osoitteiden ohittamista omilla kopioilla, jotka on tallennettu yksityiselle web-palvelimelle.
  • Asennuksen jälkeen se asettaa FirstTimeRun-rekisteriavaimen HKEY_CURRENT_USER\Software\Apple Inc.\Apple Keyboard Support poistamaan Boot Campin ponnahdusikkunan ensimmäisestä käynnistyksestä, eikä tällä hetkellä ole mitään vaihtoehtoa tämän käyttäytymisen poistamiseksi käytöstä.
  • Tukee vain 64-bittisten Windowsien asennuksia. On syytä mainita, että joulukuun 2012 Boot Camp -ajurien ESD:t näyttävät olevan vain 64-bittisiä, joten 32-bittisten Windows-käyttöjärjestelmien tukeminen vaatisi lisätyötä. Jos 32-bittisen Windowsin tuki on sinulle tärkeää, sitä varten on luotu ongelma.

Vastaa

Sähköpostiosoitettasi ei julkaista.