Skip to content

smittix/radman

Repository files navigation

RadMan

RadMan is still in active development, so please make a full backup before using it with your radio and use it at your own risk, as unfinished features could still lead to lost data, changed settings, or other unexpected behavior.

RadMan is a native macOS radio memory and activity manager focused on the Radtel RT-950 Pro.

The current backup file is a RadMan JSON backup for RT-950 Pro data. It is a native standalone workflow, but it is not yet the vendor CPS binary format. The current USB workflow can now identify a live RT-950 Pro, download its native clone image directly over USB, decode it into channels and device summaries, preserve managed backups, and write updated channel memories back safely without CHIRP. The current CPS .dat support is intentionally conservative: RadMan imports explicit zone-name arrays when they are clearly present, and it detects grouped/zoned CPS files without pretending to write unsupported metadata back into the live radio clone.

Legacy CLI

The older Python CLI remains in src/horizon_radio for reference and migration support, but the primary direction is now the native macOS app.

Signed Releases

RadMan's tag-based GitHub release workflow is set up for proper outside-the-App-Store macOS distribution:

  • Developer ID signing with hardened runtime for the .app
  • Developer ID signing for the .dmg
  • Apple notarization for both the app and the DMG
  • stapling before the DMG is uploaded to GitHub Releases

To enable signed public releases, add these GitHub Actions secrets to the smittix/radman repository:

  • MACOS_CERTIFICATE_P12_BASE64: base64-encoded Developer ID Application certificate export (.p12)
  • MACOS_CERTIFICATE_PASSWORD: password used for the .p12 export
  • MACOS_DEVELOPER_IDENTITY: full signing identity, for example Developer ID Application: Your Name or Company (TEAMID)

For notarization, provide one of these credential sets:

  • App Store Connect API key:
    • APPLE_API_KEY_ID
    • APPLE_API_ISSUER_ID
    • APPLE_API_PRIVATE_KEY_BASE64
  • Apple ID credentials:
    • APPLE_ID
    • APPLE_APP_SPECIFIC_PASSWORD
    • APPLE_TEAM_ID

Once those secrets are in place, pushing a tag such as v0.1.4 will automatically build, sign, notarize, staple, and upload RadMan.dmg to the corresponding GitHub release.

For a local signed release on a Mac that has the same certificate and notarization credentials available:

export MACOS_DEVELOPER_IDENTITY="Developer ID Application: Your Name or Company (TEAMID)"
export APPLE_API_KEY_ID="..."
export APPLE_API_ISSUER_ID="..."
export APPLE_API_PRIVATE_KEY_BASE64="..."

CODESIGN_IDENTITY="$MACOS_DEVELOPER_IDENTITY" scripts/build-macos-app.sh
CODESIGN_IDENTITY="$MACOS_DEVELOPER_IDENTITY" scripts/make-dmg.sh
scripts/notarize-macos-release.sh

Development builds still fall back to ad-hoc signing when no Developer ID identity is provided, but those builds are only intended for local testing and may still trigger macOS trust warnings when shared.

About

Native macOS RT-950 Pro radio manager with CPS import/export, USB programming, and backup workflows.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors