From b28fcbb3983be85367c5e2bbfa529241188ab51d Mon Sep 17 00:00:00 2001 From: ema Date: Wed, 14 May 2025 02:18:01 +0800 Subject: [PATCH] Update the build scripts --- .gitignore | 7 +++-- Build/AppxManifest.dev.xml | 53 ------------------------------------- Build/AppxManifest.xml | 9 +++++-- Build/micasetup.cmd | 4 --- Build/openssl-sign.cnf | 13 +++++++++ Build/sideload.crt | 20 ++++++++++++++ Build/sideload.key | 28 ++++++++++++++++++++ Build/sideload.pfx | Bin 0 -> 2579 bytes Scripts/pack-7z.ps1 | 10 +++++++ Scripts/pack-all.ps1 | 6 +++++ Scripts/pack-appx-dev.ps1 | 35 ------------------------ Scripts/pack-appx.ps1 | 4 +-- Scripts/pack-setup.ps1 | 16 ++++------- Scripts/sign-appx.ps1 | 23 +++++++++++++--- 14 files changed, 116 insertions(+), 112 deletions(-) delete mode 100644 Build/AppxManifest.dev.xml delete mode 100644 Build/micasetup.cmd create mode 100644 Build/openssl-sign.cnf create mode 100644 Build/sideload.crt create mode 100644 Build/sideload.key create mode 100644 Build/sideload.pfx create mode 100644 Scripts/pack-7z.ps1 create mode 100644 Scripts/pack-all.ps1 delete mode 100644 Scripts/pack-appx-dev.ps1 diff --git a/.gitignore b/.gitignore index 5f9471e..4a48c6d 100644 --- a/.gitignore +++ b/.gitignore @@ -290,8 +290,11 @@ __pycache__/ /QuickLook.Installer/C_QuickLookComponents.wxs /Build/* !/Build/Assets -!/Build/AppxManifest.* +!/Build/AppxManifest.xml !/Build/assetslayout.resfiles !/Build/priconfig.xml !/Build/micasetup.json -!/Build/micasetup.cmd +!/Build/openssl-sign.cnf +!/Build/sideload.crt +!/Build/sideload.key +!/Build/sideload.pfx \ No newline at end of file diff --git a/Build/AppxManifest.dev.xml b/Build/AppxManifest.dev.xml deleted file mode 100644 index ccb1168..0000000 --- a/Build/AppxManifest.dev.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - QuickLook - Paddy Xu - Bring macOS “Quick Look” feature to Windows - Assets\storelogo.png - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Build/AppxManifest.xml b/Build/AppxManifest.xml index c3d5e9d..3b5e7ec 100644 --- a/Build/AppxManifest.xml +++ b/Build/AppxManifest.xml @@ -3,10 +3,15 @@ xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"> + + + QuickLook - Paddy Xu + + + emako Bring macOS “Quick Look” feature to Windows Assets\storelogo.png @@ -19,7 +24,7 @@ - + diff --git a/Build/micasetup.cmd b/Build/micasetup.cmd deleted file mode 100644 index caa5c17..0000000 --- a/Build/micasetup.cmd +++ /dev/null @@ -1,4 +0,0 @@ -cd /d %~dp0 -@REM 7z a Package.7z .\Package\* -t7z -mx=5 -mf=BCJ2 -r -y -makemica micasetup.json -@pause diff --git a/Build/openssl-sign.cnf b/Build/openssl-sign.cnf new file mode 100644 index 0000000..9ee93c0 --- /dev/null +++ b/Build/openssl-sign.cnf @@ -0,0 +1,13 @@ +[req] +default_bits = 2048 +prompt = no +default_md = sha256 +distinguished_name = dn +x509_extensions = v3_req + +[dn] +CN = CE36AF3D-FF94-43EB-9908-7EC8FD1D29FB + +[v3_req] +keyUsage = critical, digitalSignature +extendedKeyUsage = codeSigning diff --git a/Build/sideload.crt b/Build/sideload.crt new file mode 100644 index 0000000..f338d55 --- /dev/null +++ b/Build/sideload.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDMjCCAhqgAwIBAgIUBIWdItfat0Fw6npbHI2W7HE/0KYwDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkQ0UzNkFGM0QtRkY5NC00M0VCLTk5MDgtN0VDOEZEMUQy +OUZCMB4XDTI1MDUxMzE3NDgzNVoXDTI4MDUxMjE3NDgzNVowLzEtMCsGA1UEAwwk +Q0UzNkFGM0QtRkY5NC00M0VCLTk5MDgtN0VDOEZEMUQyOUZCMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnAtbhjH01YmWv1U98kMj3epdpuZLE04pGXOR +xfdBb1zX8Q75hy5SmIaHrsow7fTXfHsUzuJEmanllMbJGUpi46fLsb8Ijd4uQgXO +wSDfIXrm34Buzpk6EKwEWmRMyORmfPwy0A+XdTHydDhEXndy1eGPJ1ZZnldVI8Ho +ZF2MW35QBZDjlWZh3RppWNMksvlngrOX4PFfJ+DtOQUvNswbpyqVATMFBk9kShGM +XHuieibzDlzxGNKSn3tDvutLBW5hm7iLqEuAeM7dwSac4C+N5FKWnXJndkN3k8AN +nD0MHlErN1dLoJQqvAaCarZr8RSPhdanVOylMGkt97NLYZrLTQIDAQABo0YwRDAO +BgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFJEL +e4QaWs4H2djQ6nnnc/30sZ/nMA0GCSqGSIb3DQEBCwUAA4IBAQBYBXkl/vEsGUHI +qogCfb/DxFlsm059sxHAIhaNjuoTlgwzgj6KSPbKsfnYVMHZFqkg4AaTuRs9iqTL +TStM14OjG95gn+7fJ4zxqquEEytk9yb2xj9ZpLAvzZzUrw5qo1lmM7yPRso38l62 +9g1G1/MVP6pO03QWKzvSV+IlU3DIP3M2r74G8dexL5/Cut1LkOc/tn2ZYt3Ij95e +RM2vqxzK2pw6IAVG3wdNGAyN9K8BATRuAXFV6RXkeEBHFNV3wpyq4W+H6hpsrMJM +rMZUUqLa8BTUQAsZ1jmL+dRmj2rESeOaOO9jPks4J4c8+v8aJQBmZhvxRyjyMtdL +pWHSCCgm +-----END CERTIFICATE----- diff --git a/Build/sideload.key b/Build/sideload.key new file mode 100644 index 0000000..6272606 --- /dev/null +++ b/Build/sideload.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcC1uGMfTViZa/ +VT3yQyPd6l2m5ksTTikZc5HF90FvXNfxDvmHLlKYhoeuyjDt9Nd8exTO4kSZqeWU +xskZSmLjp8uxvwiN3i5CBc7BIN8heubfgG7OmToQrARaZEzI5GZ8/DLQD5d1MfJ0 +OERed3LV4Y8nVlmeV1UjwehkXYxbflAFkOOVZmHdGmlY0ySy+WeCs5fg8V8n4O05 +BS82zBunKpUBMwUGT2RKEYxce6J6JvMOXPEY0pKfe0O+60sFbmGbuIuoS4B4zt3B +JpzgL43kUpadcmd2Q3eTwA2cPQweUSs3V0uglCq8BoJqtmvxFI+F1qdU7KUwaS33 +s0thmstNAgMBAAECggEABS51XWPhmt5E5K6Pw4XKNkS207jC68MFJ1oIkE0bsvcf +boWORe2vrW6OKSt/627dYZNJXMNI/tyUNIKooSUwr8QzGysE6DJlUSjrNXYszT+i +VJqUU1o614c2unT+fbnj01OhMPp2OjHXOK0OTCAQQ/IySYlFqYssgbxJxgdl2+XX +rDiSk5PvZ0Z8PUuG7EvNbRAnUmIQDVTd81My0kPk4M0w8Rg2p0sIN5klIDxTzC98 +5iUvS+53xch4f8jJOr8s7J/56R+tnIoqfVkIDI3Q4CUhq3s0DAC7GP4vpoynGXn0 +pLzHvOttFbqgcHkS2zrVOXKwl4Zym4p+kMCub6BCmwKBgQDcGzCvrMon4fIJrymG +lmGZMeN8acjD0MKDT8JPgHkwXTz61AbOC2EGoOpWNqrYGOCv6xSMPiub1un6Y5X2 +KIuAJm+bY+py0Ed+EzZjrFkQpGt6xQ3FY2aFvA5uS3esgcF+OtcUrXEEq0dK9bZ6 +HB9P90QuND72bvfx9wjLon0dvwKBgQC1fcRbLpqA2lSGglcRoioA/okMPyMk7jH3 +n3IHjnpjsBu1FPrWH8Tqtop4vrEVS1cxM7P7FXWwWPqUH/2XbCk1R3T9ZD+i1kHi +qvSqp4L0dfTk6ibZpywGXRnpQzT5kKJTrSSx9L7Ni00HcvCI1+p4XNdJZm7jNDSy +dGSPg1ox8wKBgB6TaF//ENYZfRX7TzlzCnvNglx2FX2eMmcrXULOBgfB7AasDYXx +7riNAgCX94OtcQj/DwusV0J+yGIQE3TujPJwZHChoJ/ybvwEjzmpZ3X4YTXcydzx +wfwx848+zJEaNVbjtZ0Zuul7IZw4JfEwluj04HPKrjRtleP2/THMkLThAoGBAJYh +BwB2OJBGCo2J3ARWJHDWHP/oamXuM58mYekmTs+PqhvM0wG1HesaPMlM1KdMvz+Q +CV21jrjlocJOBDPx4NSV24yQFKPaoH2j9OgF0SnvOTjzCFgbFSveb8SpN3UJ031s +SGJ8lijpBjsXNSm9kdMm2V96QFfpo33LEjQ077NJAoGARnnvnenmfwlu/5Oq2Ojs +WWzOxXTpiGXLnbUNUvQMvqXxGygCGoA18vVveLr6eKfojM8iKtGF91S9NsUkBEkd +VKOFnc9OQ5dtoBkN6XZBUCmJCzQZS20A3jq9oionsJlIWOgb/X3L1cS2SZ3ocgKS +lCCN2IGaKiGJCPJprpFW7fg= +-----END PRIVATE KEY----- diff --git a/Build/sideload.pfx b/Build/sideload.pfx new file mode 100644 index 0000000000000000000000000000000000000000..f3f18c464b7f48f9352f4124d401a21327934494 GIT binary patch literal 2579 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 literal 0 HcmV?d00001 diff --git a/Scripts/pack-7z.ps1 b/Scripts/pack-7z.ps1 new file mode 100644 index 0000000..4e59ef3 --- /dev/null +++ b/Scripts/pack-7z.ps1 @@ -0,0 +1,10 @@ +$version = git describe --always --tags --exclude latest + +Set-Location ../Build + +Write-Output "This file makes QuickLook portable." >> .\Package\portable.lock + +Remove-Item .\QuickLook-$version.7z -ErrorAction SilentlyContinue +7z.exe a .\QuickLook-$version.7z .\Package\* -t7z -mx=9 -ms=on -m0=lzma2 -mf=BCJ2 -r -y + +Remove-Item .\Package\portable.lock diff --git a/Scripts/pack-all.ps1 b/Scripts/pack-all.ps1 new file mode 100644 index 0000000..38fc08a --- /dev/null +++ b/Scripts/pack-all.ps1 @@ -0,0 +1,6 @@ +# Please build the msi installation package in advance +powershell -file "$(SolutionDir)Scripts\pack-7z.ps1" +powershell -file "$(SolutionDir)Scripts\pack-setup.ps1" +powershell -file "$(SolutionDir)Scripts\pack-appx.ps1" +powershell -file "$(SolutionDir)Scripts\sign-appx.ps1" +Pause diff --git a/Scripts/pack-appx-dev.ps1 b/Scripts/pack-appx-dev.ps1 deleted file mode 100644 index 5f1db75..0000000 --- a/Scripts/pack-appx-dev.ps1 +++ /dev/null @@ -1,35 +0,0 @@ -$version = git describe --always --tags "--abbrev=0" --exclude latest - -if($version.Split('.').Length.Equals(3)) -{ - $version += ".0" -} - -function Update-Version($path) -{ - $xml = [xml](Get-Content $path) - $xml.Package.Identity.Version="$version" - $xml.Save("$path") -} - -if(-not (Test-Path env:CI)) -{ - # prapare folders - Remove-Item -Recurse ..\Build\Appx -ErrorAction SilentlyContinue - Copy-Item -Recurse ..\Build\Package ..\Build\Appx\Package - Copy-Item -Recurse ..\Build\Assets ..\Build\Appx\Assets - Copy-item ..\Build\AppxManifest.dev.xml ..\Build\Appx\AppxManifest.xml - - # set version to git version - Update-Version("..\Build\Appx\AppxManifest.xml") - - # generate resources - $priExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\makepri.exe' - .$priExe new /pr ..\Build\Appx /cf ..\Build\priconfig.xml /of ..\Build\Appx\resources.pri - - # packing - $packExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\makeappx.exe' - $folder = '..\Build\Appx\' - - .$packExe pack /l /o /d ..\Build\Appx /p ..\Build\QuickLook-$version.appx -} diff --git a/Scripts/pack-appx.ps1 b/Scripts/pack-appx.ps1 index 95b8d2b..298303e 100644 --- a/Scripts/pack-appx.ps1 +++ b/Scripts/pack-appx.ps1 @@ -24,11 +24,11 @@ if(-not (Test-Path env:CI)) Update-Version("..\Build\Appx\AppxManifest.xml") # generate resources - $priExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\makepri.exe' + $priExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\makepri.exe' .$priExe new /pr ..\Build\Appx /cf ..\Build\priconfig.xml /of ..\Build\Appx\resources.pri # packing - $packExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\makeappx.exe' + $packExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\makeappx.exe' $folder = '..\Build\Appx\' .$packExe pack /l /o /d ..\Build\Appx /p ..\Build\QuickLook-$version.appx diff --git a/Scripts/pack-setup.ps1 b/Scripts/pack-setup.ps1 index f40e503..a7abd13 100644 --- a/Scripts/pack-setup.ps1 +++ b/Scripts/pack-setup.ps1 @@ -1,16 +1,10 @@ +$version = git describe --always --tags --exclude latest + Set-Location ../Build -Remove-Item .\QuickLook.7z -ErrorAction SilentlyContinue -7z a QuickLook.7z .\Package\* -t7z -mx=5 -mf=BCJ2 -r -y +Remove-Item .\Package.7z -ErrorAction SilentlyContinue +7z a Package.7z .\Package\* -t7z -mx=9 -ms=on -m0=lzma2 -mf=BCJ2 -r -y makemica micasetup.json -Write-Output "This file makes QuickLook portable." >> .\Package\portable.lock -7z a QuickLook.7z .\Package\portable.lock -t7z -mx=5 -mf=BCJ2 -r -y - -$version = git describe --always --tags --exclude latest -Remove-Item .\QuickLook-$version.7z -ErrorAction SilentlyContinue -Rename-Item .\QuickLook.7z QuickLook-$version.7z -Remove-Item .\QuickLook-$version.exe -ErrorAction SilentlyContinue Rename-Item .\QuickLook.exe QuickLook-$version.exe - -pause +Remove-Item .\Package.7z -ErrorAction SilentlyContinue \ No newline at end of file diff --git a/Scripts/sign-appx.ps1 b/Scripts/sign-appx.ps1 index b86eb9b..a0e79d3 100644 --- a/Scripts/sign-appx.ps1 +++ b/Scripts/sign-appx.ps1 @@ -1,5 +1,22 @@ -$signExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\signtool.exe' -$files = gci '..\Build\QuickLook-*.appx' | %{('"{0}"' -f $_.FullName)} +$opensslExe = 'C:\Program Files\Git\usr\bin\openssl.exe' +$signExe = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\signtool.exe' $timestampUrl = 'http://time.certum.pl/' +$version = git describe --always --tags "--abbrev=0" --exclude latest -.$signExe sign /a /v /fd sha256 /t $timestampUrl $files +if($version.Split('.').Length.Equals(3)) +{ + $version += ".0" +} + +Set-Location ../Build + +if (-not (Test-Path sideload.key)) { + .$opensslExe genrsa -out "sideload.key" 2048 +} +if (-not (Test-Path sideload.pfx)) { + .$opensslExe req -new -x509 -days 825 -key "sideload.key" -out "sideload.crt" -config "openssl-sign.cnf" -subj "/CN=CE36AF3D-FF94-43EB-9908-7EC8FD1D29FB" + .$opensslExe pkcs12 -export -out "sideload.pfx" -inkey "sideload.key" -in "sideload.crt" -password pass:123456 +} + +.$signExe sign /fd sha256 /f "sideload.pfx" /p 123456 /td sha256 /tr $timestampUrl QuickLook-$version.appx +.$signExe verify /pa /v QuickLook-$version.appx