Compare commits

...
Author SHA1 Message Date
Ian e5f4dd70ac Use the com.usestrix.firewall bundle ID 2026-10-21 12:07:56 -04:00
7 changed files with 19 additions and 19 deletions

No files matched your search

+3 -3
View File
@@ -25,10 +25,10 @@ use std::sync::Arc;
use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt; use tracing_subscriber::util::SubscriberInitExt;
const BUNDLE_ID: &str = "ai.strix.firewall"; const BUNDLE_ID: &str = "com.usestrix.firewall";
const KEYCHAIN_SERVICE: &str = BUNDLE_ID; const KEYCHAIN_SERVICE: &str = BUNDLE_ID;
const KEYCHAIN_ACCOUNT: &str = "ca"; const KEYCHAIN_ACCOUNT: &str = "ca";
/// Must match `macos/LaunchAgents/ai.strix.firewall.env.plist`, which points npm at it. /// Must match `macos/LaunchAgents/com.usestrix.firewall.env.plist`, which points npm at it.
const CA_FILE: &str = "/Library/Application Support/Firewall/ca.pem"; const CA_FILE: &str = "/Library/Application Support/Firewall/ca.pem";
#[derive(Clone)] #[derive(Clone)]
@@ -113,7 +113,7 @@ fn handler(exec: Executor) -> Result<Handler, BoxError> {
} }
/// stderr is invisible in a system extension, so events go to the unified log: /// stderr is invisible in a system extension, so events go to the unified log:
/// `log stream --predicate 'subsystem == "ai.strix.firewall"'`. /// `log stream --predicate 'subsystem == "com.usestrix.firewall"'`.
fn init(_config: Option<&TransparentProxyInitConfig>) -> bool { fn init(_config: Option<&TransparentProxyInitConfig>) -> bool {
// A panic crossing the FFI boundary aborts, and its message would go to stderr. // A panic crossing the FFI boundary aborts, and its message would go to stderr.
std::panic::set_hook(Box::new(|panic| tracing::error!("{panic}"))); std::panic::set_hook(Box::new(|panic| tracing::error!("{panic}")));
+1 -1
View File
@@ -7,7 +7,7 @@ use std::io::ErrorKind;
use tracing::info; use tracing::info;
/// Installed by the pkg. /// Installed by the pkg.
const ENV_AGENT: &str = "/Library/LaunchAgents/ai.strix.firewall.env.plist"; const ENV_AGENT: &str = "/Library/LaunchAgents/com.usestrix.firewall.env.plist";
/// Removes what only root can: the CA, its enclave key and exported copy, and the env /// Removes what only root can: the CA, its enclave key and exported copy, and the env
/// agent. Trust settings need an authorization dialog, so the installer drops those itself. /// agent. Trust settings need an authorization dialog, so the installer drops those itself.
+2 -2
View File
@@ -1,7 +1,7 @@
import Foundation import Foundation
enum FirewallIDs { enum FirewallIDs {
static let appBundleID = "ai.strix.firewall" static let appBundleID = "com.usestrix.firewall"
static let extensionBundleID = "ai.strix.firewall.extension" static let extensionBundleID = "com.usestrix.firewall.extension"
static let caCommonName = "Strix Firewall" static let caCommonName = "Strix Firewall"
} }
@@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>Label</key> <key>Label</key>
<string>ai.strix.firewall.env</string> <string>com.usestrix.firewall.env</string>
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>/bin/launchctl</string> <string>/bin/launchctl</string>
+3 -3
View File
@@ -10,8 +10,8 @@ cd "$(dirname "$0")"
: "${TEAM:?set TEAM in macos/.env}" : "${TEAM:?set TEAM in macos/.env}"
export TEAM export TEAM
APP_ID=ai.strix.firewall APP_ID=com.usestrix.firewall
EXT_ID=ai.strix.firewall.extension EXT_ID=com.usestrix.firewall.extension
VERSION=0.1 VERSION=0.1
IDENTITY=${IDENTITY:-$(security find-identity -v -p codesigning | awk -F'"' '/Apple Development/ {print $2; exit}')} IDENTITY=${IDENTITY:-$(security find-identity -v -p codesigning | awk -F'"' '/Apple Development/ {print $2; exit}')}
PROFILES="$HOME/Library/Developer/Xcode/UserData/Provisioning Profiles" PROFILES="$HOME/Library/Developer/Xcode/UserData/Provisioning Profiles"
@@ -59,7 +59,7 @@ package() {
rm -rf "$PKG_ROOT" rm -rf "$PKG_ROOT"
mkdir -p "$PKG_ROOT/Applications" "$PKG_ROOT/Library/LaunchAgents" mkdir -p "$PKG_ROOT/Applications" "$PKG_ROOT/Library/LaunchAgents"
cp -R "$APP" "$PKG_ROOT/Applications/Firewall.app" cp -R "$APP" "$PKG_ROOT/Applications/Firewall.app"
cp LaunchAgents/ai.strix.firewall.env.plist "$PKG_ROOT/Library/LaunchAgents/" cp LaunchAgents/com.usestrix.firewall.env.plist "$PKG_ROOT/Library/LaunchAgents/"
pkgbuild --analyze --root "$PKG_ROOT" build/components.plist >/dev/null pkgbuild --analyze --root "$PKG_ROOT" build/components.plist >/dev/null
plutil -replace 0.BundleIsRelocatable -bool NO build/components.plist plutil -replace 0.BundleIsRelocatable -bool NO build/components.plist
+1 -1
View File
@@ -3,7 +3,7 @@
user=$(stat -f %Su /dev/console) user=$(stat -f %Su /dev/console)
[ "$user" = root ] && exit 0 [ "$user" = root ] && exit 0
uid=$(id -u "$user") uid=$(id -u "$user")
agent=/Library/LaunchAgents/ai.strix.firewall.env.plist agent=/Library/LaunchAgents/com.usestrix.firewall.env.plist
launchctl bootout "gui/$uid" "$agent" 2>/dev/null launchctl bootout "gui/$uid" "$agent" 2>/dev/null
launchctl bootstrap "gui/$uid" "$agent" launchctl bootstrap "gui/$uid" "$agent"
launchctl asuser "$uid" sudo -u "$user" open -a /Applications/Firewall.app --args --install launchctl asuser "$uid" sudo -u "$user" open -a /Applications/Firewall.app --args --install
+8 -8
View File
@@ -1,6 +1,6 @@
name: Firewall name: Firewall
options: options:
bundleIdPrefix: ai.strix.firewall bundleIdPrefix: com.usestrix.firewall
deploymentTarget: { macOS: "13.0" } deploymentTarget: { macOS: "13.0" }
createIntermediateGroups: true createIntermediateGroups: true
@@ -33,8 +33,8 @@ targets:
sources: [Extension] sources: [Extension]
settings: settings:
base: base:
PRODUCT_BUNDLE_IDENTIFIER: ai.strix.firewall.extension PRODUCT_BUNDLE_IDENTIFIER: com.usestrix.firewall.extension
PRODUCT_NAME: ai.strix.firewall.extension PRODUCT_NAME: com.usestrix.firewall.extension
PRODUCT_MODULE_NAME: Extension PRODUCT_MODULE_NAME: Extension
OTHER_LDFLAGS: [-lfirewall, -framework, NetworkExtension, -lz] OTHER_LDFLAGS: [-lfirewall, -framework, NetworkExtension, -lz]
info: info:
@@ -44,7 +44,7 @@ targets:
CFBundleShortVersionString: "0.1" CFBundleShortVersionString: "0.1"
NSSystemExtensionUsageDescription: Firewall uses a network extension to screen package downloads before they install. NSSystemExtensionUsageDescription: Firewall uses a network extension to screen package downloads before they install.
NetworkExtension: NetworkExtension:
NEMachServiceName: ${TEAM}.ai.strix.firewall.extension NEMachServiceName: ${TEAM}.com.usestrix.firewall.extension
NEProviderClasses: NEProviderClasses:
com.apple.networkextension.app-proxy: RamaAppleNetworkExtension.RamaTransparentProxyProvider com.apple.networkextension.app-proxy: RamaAppleNetworkExtension.RamaTransparentProxyProvider
entitlements: entitlements:
@@ -52,13 +52,13 @@ targets:
properties: properties:
# Xcode injects these from the profile; we sign by hand, and NE's IPC # Xcode injects these from the profile; we sign by hand, and NE's IPC
# check rejects a caller without them. # check rejects a caller without them.
com.apple.application-identifier: ${TEAM}.ai.strix.firewall.extension com.apple.application-identifier: ${TEAM}.com.usestrix.firewall.extension
com.apple.developer.team-identifier: ${TEAM} com.apple.developer.team-identifier: ${TEAM}
com.apple.developer.networking.networkextension: com.apple.developer.networking.networkextension:
- app-proxy-provider - app-proxy-provider
# NE requires NEMachServiceName to start with one of these. # NE requires NEMachServiceName to start with one of these.
com.apple.security.application-groups: com.apple.security.application-groups:
- ${TEAM}.ai.strix.firewall - ${TEAM}.com.usestrix.firewall
com.apple.security.network.client: true com.apple.security.network.client: true
com.apple.security.network.server: true com.apple.security.network.server: true
dependencies: dependencies:
@@ -96,7 +96,7 @@ targets:
buildPhase: resources buildPhase: resources
settings: settings:
base: base:
PRODUCT_BUNDLE_IDENTIFIER: ai.strix.firewall PRODUCT_BUNDLE_IDENTIFIER: com.usestrix.firewall
info: info:
path: Installer/Info.plist path: Installer/Info.plist
properties: properties:
@@ -107,7 +107,7 @@ targets:
entitlements: entitlements:
path: Installer/Installer.entitlements path: Installer/Installer.entitlements
properties: properties:
com.apple.application-identifier: ${TEAM}.ai.strix.firewall com.apple.application-identifier: ${TEAM}.com.usestrix.firewall
com.apple.developer.team-identifier: ${TEAM} com.apple.developer.team-identifier: ${TEAM}
com.apple.developer.system-extension.install: true com.apple.developer.system-extension.install: true
com.apple.developer.networking.networkextension: com.apple.developer.networking.networkextension: