mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2025-02-23 02:11:54 +01:00
Clover.app, show commit hash in the installer
This commit is contained in:
parent
4d24444cda
commit
fcbe66993c
@ -15,6 +15,7 @@
|
||||
9542ABC22373786700DC03E6 /* CloverV2 in Copy CloverV2 */ = {isa = PBXBuildFile; fileRef = 9542ABC12373786700DC03E6 /* CloverV2 */; };
|
||||
9546AE1B23806299007155A6 /* CloverLogOut in Copy tools */ = {isa = PBXBuildFile; fileRef = 95524B88238051F4005F6425 /* CloverLogOut */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
954BBE99238196EE0032425F /* Locale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954BBE98238196EE0032425F /* Locale.swift */; };
|
||||
954DECD523899F5F006A9876 /* Bootmanager.png in Resources */ = {isa = PBXBuildFile; fileRef = 954DECD423899F5F006A9876 /* Bootmanager.png */; };
|
||||
9552D748236F33CA00C93377 /* CloverDaemonNew in Copy tools */ = {isa = PBXBuildFile; fileRef = 9552D745236F33A700C93377 /* CloverDaemonNew */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
958861DA235F75FB00B64173 /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 958861D9235F75FB00B64173 /* Driver.swift */; };
|
||||
95ACABCA236B7463008F80A4 /* Unzip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95ACABC9236B7463008F80A4 /* Unzip.swift */; };
|
||||
@ -170,6 +171,7 @@
|
||||
9542ABC12373786700DC03E6 /* CloverV2 */ = {isa = PBXFileReference; lastKnownFileType = folder; name = CloverV2; path = ../CloverPackage/CloverV2; sourceTree = "<group>"; };
|
||||
954BBE98238196EE0032425F /* Locale.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Locale.swift; sourceTree = "<group>"; };
|
||||
954C3DF0237DF0250059C698 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; };
|
||||
954DECD423899F5F006A9876 /* Bootmanager.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bootmanager.png; sourceTree = "<group>"; };
|
||||
95524B83238051F3005F6425 /* CloverLogOut.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CloverLogOut.xcodeproj; path = CloverLogOut/CloverLogOut.xcodeproj; sourceTree = "<group>"; };
|
||||
9552D740236F33A700C93377 /* CloverDaemonNew.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CloverDaemonNew.xcodeproj; path = CloverDaemonNew/CloverDaemonNew.xcodeproj; sourceTree = "<group>"; };
|
||||
958505B4236594C000BCB4A3 /* Cloverhelper.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cloverhelper.xcodeproj; path = cloverhelper/Cloverhelper.xcodeproj; sourceTree = "<group>"; };
|
||||
@ -373,6 +375,7 @@
|
||||
95C514D62368D40A00E4A3A8 /* Main.storyboard */,
|
||||
95E68AD9235B8666002B37A5 /* Installer */,
|
||||
95E68ACD235B8632002B37A5 /* Assets.xcassets */,
|
||||
954DECD423899F5F006A9876 /* Bootmanager.png */,
|
||||
95E68AD2235B8632002B37A5 /* Info.plist */,
|
||||
95E68AD3235B8632002B37A5 /* Clover.entitlements */,
|
||||
);
|
||||
@ -555,6 +558,7 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
95C514D82368D40A00E4A3A8 /* Main.storyboard in Resources */,
|
||||
954DECD523899F5F006A9876 /* Bootmanager.png in Resources */,
|
||||
95C5C02D236598B00049940D /* Installer.storyboard in Resources */,
|
||||
95E68ACE235B8632002B37A5 /* Assets.xcassets in Resources */,
|
||||
9533718323709517003F1AF4 /* bootsectors-install in Resources */,
|
||||
|
BIN
CloverApp/Clover/Bootmanager.png
Normal file
BIN
CloverApp/Clover/Bootmanager.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
@ -37,7 +37,7 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cd4-BN-85D">
|
||||
<rect key="frame" x="12" y="176" width="53" height="18"/>
|
||||
<rect key="frame" x="12" y="165" width="53" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="BIOS" bezelStyle="regularSquare" imagePosition="left" focusRingType="none" inset="2" id="cO6-AP-j0b">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@ -97,9 +97,9 @@
|
||||
<action selector="bootSectPressed:" target="nXe-XS-4J0" id="LX5-eS-eGO"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="24J-OS-i5T">
|
||||
<rect key="frame" x="14" y="209" width="156" height="184"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" image="NSApplicationIcon" id="Bef-n1-kQ3"/>
|
||||
<imageView focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="24J-OS-i5T">
|
||||
<rect key="frame" x="14" y="196" width="156" height="197"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" focusRingType="none" alignment="left" imageScaling="proportionallyDown" image="Bootmanager" id="Bef-n1-kQ3"/>
|
||||
</imageView>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ccr-sG-KVJ">
|
||||
<rect key="frame" x="81" y="87" width="91" height="15"/>
|
||||
@ -216,7 +216,7 @@
|
||||
<constraint firstItem="PD6-mW-VtD" firstAttribute="bottom" secondItem="5aW-1v-mN2" secondAttribute="bottom" id="4bA-ef-7cG"/>
|
||||
<constraint firstItem="8sv-QN-08c" firstAttribute="top" secondItem="AVt-3S-p3r" secondAttribute="bottom" constant="9" id="5X5-m7-xEF"/>
|
||||
<constraint firstItem="btq-Z5-aMA" firstAttribute="top" secondItem="Ccr-sG-KVJ" secondAttribute="bottom" constant="9" id="79z-lG-snY"/>
|
||||
<constraint firstItem="PD6-mW-VtD" firstAttribute="leading" secondItem="24J-OS-i5T" secondAttribute="trailing" constant="8" symbolic="YES" id="8Ov-BD-gVo"/>
|
||||
<constraint firstItem="PD6-mW-VtD" firstAttribute="leading" secondItem="24J-OS-i5T" secondAttribute="trailing" constant="8" id="8Ov-BD-gVo"/>
|
||||
<constraint firstItem="uj1-kY-SjZ" firstAttribute="leading" secondItem="5aW-1v-mN2" secondAttribute="trailing" constant="36" id="9P5-DX-Drj"/>
|
||||
<constraint firstItem="AVt-3S-p3r" firstAttribute="trailing" secondItem="btq-Z5-aMA" secondAttribute="trailing" id="A7i-ZU-d4V"/>
|
||||
<constraint firstItem="6Mf-nc-9Pn" firstAttribute="trailing" secondItem="AVt-3S-p3r" secondAttribute="trailing" id="AR9-WP-pmb"/>
|
||||
@ -247,8 +247,8 @@
|
||||
<constraint firstItem="Fda-eU-aq8" firstAttribute="leading" secondItem="79D-mq-1Q0" secondAttribute="leading" id="frU-vg-Amx"/>
|
||||
<constraint firstItem="79D-mq-1Q0" firstAttribute="top" secondItem="Fda-eU-aq8" secondAttribute="bottom" constant="8" symbolic="YES" id="jDU-Iw-tL2"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Fda-eU-aq8" secondAttribute="trailing" constant="20" symbolic="YES" id="kCT-UQ-jdd"/>
|
||||
<constraint firstItem="6Mf-nc-9Pn" firstAttribute="top" secondItem="cd4-BN-85D" secondAttribute="bottom" constant="21" id="kZC-qu-hBO"/>
|
||||
<constraint firstItem="cd4-BN-85D" firstAttribute="top" secondItem="24J-OS-i5T" secondAttribute="bottom" constant="17" id="lNu-Mo-Mge"/>
|
||||
<constraint firstItem="6Mf-nc-9Pn" firstAttribute="top" secondItem="cd4-BN-85D" secondAttribute="bottom" constant="10" id="kZC-qu-hBO"/>
|
||||
<constraint firstItem="cd4-BN-85D" firstAttribute="top" secondItem="24J-OS-i5T" secondAttribute="bottom" constant="15" id="lNu-Mo-Mge"/>
|
||||
<constraint firstItem="PD6-mW-VtD" firstAttribute="leading" secondItem="YVM-Rq-d7o" secondAttribute="trailing" constant="45" id="ora-L3-TSy"/>
|
||||
<constraint firstItem="cd4-BN-85D" firstAttribute="leading" secondItem="6Mf-nc-9Pn" secondAttribute="leading" id="pYV-pQ-Bj6"/>
|
||||
<constraint firstItem="8sv-QN-08c" firstAttribute="leading" secondItem="MgP-28-KzA" secondAttribute="leading" constant="57" id="q71-1M-ERT"/>
|
||||
@ -281,7 +281,7 @@
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="NSApplicationIcon" width="32" height="32"/>
|
||||
<image name="Bootmanager" width="156" height="197"/>
|
||||
<image name="NSGoRightTemplate" width="9" height="12"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
@ -35,7 +35,12 @@ class InstallerWindowController: NSWindowController, NSWindowDelegate {
|
||||
let wc = NSStoryboard(name: "Installer",
|
||||
bundle: nil).instantiateController(withIdentifier: "InstallerWindow") as! InstallerWindowController
|
||||
let rev = findCloverRevision(at: Cloverv2Path.addPath("EFI")) ?? "0000"
|
||||
wc.window?.title = "\("Clover Installer".locale) r\(rev)"
|
||||
|
||||
var title = "\("Clover Installer".locale) r\(rev)"
|
||||
if let hash = findCloverHashCommit(at: Cloverv2Path.addPath("EFI")) {
|
||||
title = "\(title) (\(hash))"
|
||||
}
|
||||
wc.window?.title = title
|
||||
return wc
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ func findCloverRevision(at EFIdir: String) -> String? {
|
||||
scanner.scanUpTo(terminatingCharacter, into: &rev)
|
||||
|
||||
if (rev != nil), let revision = String(cString: (rev?.utf8String)!,
|
||||
encoding: String.Encoding.utf8)/*&& rev?.length == 4 */{
|
||||
encoding: String.Encoding.utf8) {
|
||||
if revision.count == 4 {
|
||||
return revision
|
||||
}
|
||||
@ -70,3 +70,37 @@ func findCloverRevision(at EFIdir: String) -> String? {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// MARK: find Clover gihub commit
|
||||
func findCloverHashCommit(at EFIdir: String) -> String? {
|
||||
|
||||
let bootfiles : [String] = ["/BOOT/BOOTX64.efi",
|
||||
"/CLOVER/CLOVERX64.efi",
|
||||
"/BOOT/BOOTXIA32.efi",
|
||||
"/CLOVER/CLOVERIA32.efi"]
|
||||
let preMatchString = ", commit "
|
||||
let terminatingCharacter = ")"
|
||||
for b in bootfiles {
|
||||
if fm.fileExists(atPath: EFIdir + b) {
|
||||
do {
|
||||
var rev : NSString? = nil
|
||||
let stringToSearch : String = try String(contentsOfFile: EFIdir + b, encoding: String.Encoding.ascii)
|
||||
let scanner : Scanner = Scanner(string: stringToSearch)
|
||||
scanner.scanUpTo(preMatchString, into: nil)
|
||||
scanner.scanString(preMatchString, into: nil)
|
||||
scanner.scanUpTo(terminatingCharacter, into: &rev)
|
||||
|
||||
if (rev != nil), let revision = String(cString: (rev?.utf8String)!,
|
||||
encoding: String.Encoding.utf8) {
|
||||
if revision.count == 8 {
|
||||
return revision
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
print(error.localizedDescription)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -57,6 +57,22 @@ func findCloverRevision() -> String? {
|
||||
return rev
|
||||
}
|
||||
|
||||
func findCloverHash() -> String? {
|
||||
let bdmesg = dumpBootlog()
|
||||
var rev : String? = nil
|
||||
if (bdmesg != nil) {
|
||||
for line in bdmesg!.components(separatedBy: .newlines) {
|
||||
if (line.range(of: "Starting Clover revision: ") != nil
|
||||
&& (line.range(of: ", commit ") != nil)) {
|
||||
rev = line.components(separatedBy: ", commit")[1]
|
||||
rev = rev!.components(separatedBy: ")")[0]
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return rev
|
||||
}
|
||||
|
||||
func findBootPartitionDevice() -> String? {
|
||||
var bsd :String? = nil
|
||||
if let bdmesg : String = dumpBootlog() {
|
||||
|
Loading…
Reference in New Issue
Block a user