Compare commits

..
Author SHA1 Message Date
Ian b37f93936e Show why the extension failed to start 2026-10-21 15:40:40 -04:00
ian-at-strix bcd26b91b0 Rename the Installer app to StrixFirewall (#28)
* Rename the Installer app to Firewall

* Name the app Strix Firewall

* Name the app StrixFirewall
2026-10-21 15:28:19 -04:00
Ian 70e66280f6 Log uninstall only when something was removed 2026-10-21 15:28:19 -04:00
Ian 1879e9061e Uninstall through the bundled CLI 2026-10-21 15:28:19 -04:00
Ian dcee91ef04 Remove the CA from the app, not the extension 2026-10-21 15:28:19 -04:00
13 changed files with 13 additions and 78 deletions

No files matched your search

+4 -2
View File
@@ -26,8 +26,10 @@ pub fn uninstall() -> Result<(), BoxError> {
Err(error) if error.code() == errSecItemNotFound => false,
Err(error) => return Err(error.into()),
};
// Reading a secret's data is limited to the extension, so delete without checking it exists.
system_keychain::delete_secret(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT)?;
if system_keychain::load_secret(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT)?.is_some() {
system_keychain::delete_secret(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT)?;
removed = true;
}
EnclaveKey::delete()?;
for path in [CA_FILE, ENV_AGENT] {
match std::fs::remove_file(path) {
@@ -1,68 +0,0 @@
{
"images": [
{
"idiom": "mac",
"size": "16x16",
"scale": "1x",
"filename": "icon_16.png"
},
{
"idiom": "mac",
"size": "16x16",
"scale": "2x",
"filename": "icon_32.png"
},
{
"idiom": "mac",
"size": "32x32",
"scale": "1x",
"filename": "icon_32.png"
},
{
"idiom": "mac",
"size": "32x32",
"scale": "2x",
"filename": "icon_64.png"
},
{
"idiom": "mac",
"size": "128x128",
"scale": "1x",
"filename": "icon_128.png"
},
{
"idiom": "mac",
"size": "128x128",
"scale": "2x",
"filename": "icon_256.png"
},
{
"idiom": "mac",
"size": "256x256",
"scale": "1x",
"filename": "icon_256.png"
},
{
"idiom": "mac",
"size": "256x256",
"scale": "2x",
"filename": "icon_512.png"
},
{
"idiom": "mac",
"size": "512x512",
"scale": "1x",
"filename": "icon_512.png"
},
{
"idiom": "mac",
"size": "512x512",
"scale": "2x",
"filename": "icon_1024.png"
}
],
"info": {
"author": "xcode",
"version": 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

-3
View File
@@ -1,3 +0,0 @@
{
"info" : { "author" : "xcode", "version" : 1 }
}
-3
View File
@@ -212,9 +212,6 @@ final class FirewallModel: NSObject, ObservableObject {
forExtensionWithIdentifier: FirewallIDs.extensionBundleID, queue: .main))
extensionStep = .pending
log("System extension deactivated, macOS finishes removing it on the next reboot")
} catch OSSystemExtensionError.extensionNotFound {
extensionStep = .pending
log("No system extension to deactivate")
} catch {
extensionStep = .failed(error.localizedDescription)
log("Deactivation failed: \(error.localizedDescription)")
+9 -1
View File
@@ -1,5 +1,5 @@
#!/bin/bash
# Builds and signs StrixFirewall.app and packages it as build/Firewall.pkg.
# Builds and signs StrixFirewall.app, installs it to /Applications, and packages it as build/Firewall.pkg.
# The package is notarized with the notarytool keychain profile in NOTARY_PROFILE; `build.sh debug`
# makes a Debug build and skips notarization.
#
@@ -39,6 +39,7 @@ PKG_ROOT=build/pkg-root
main() {
build
sign
install_app
package
[ $CONFIGURATION = Debug ] || notarize
}
@@ -63,6 +64,13 @@ sign() {
codesign --verify --deep --strict "$APP"
}
# The extension can only be activated from /Applications.
install_app() {
echo "==> Installing /Applications/StrixFirewall.app"
rm -rf /Applications/StrixFirewall.app
cp -R "$APP" /Applications/StrixFirewall.app
}
# Marked non-relocatable so the installer never updates another copy with the same bundle id.
package() {
echo "==> Packaging build/Firewall.pkg"
-1
View File
@@ -97,7 +97,6 @@ targets:
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.usestrix.firewall
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
info:
path: App/Info.plist
properties: