Das Aerona App-Format
Jede App, die man in AetherOS nachträglich installiert, kommt als .aero-Datei – ein Format, das Aerona selbst entwickelt hat. Eine Datei beschreibt eine komplette App und bringt ihren Inhalt gleich mit: keine Abhängigkeiten, nichts wird nachgeladen. Der Grund dahinter: Eine App, die aus genau einer lesbaren Datei besteht, lässt sich prüfen, bevor sie läuft – und nach dem Prüfen kann nichts mehr dazukommen. Die vierzehn fest eingebauten Programme gehören zum System und sind keine .aero-Dateien. Stand 23.09.2026 gibt es fünf Beispiel-Apps und mit Horizon Audio eine echte App im Format; die Tabelle unter „Fünf Beispiele“ nennt sie alle.
Wie eine .aero-Datei aufgebaut ist
Im Kern ist es ein JSON-Dokument – reiner Text, den man mit jedem Editor öffnen und lesen kann. Es sagt dem System, wie die App heißt, wie sie aussieht und was sie anzeigt. Beim Öffnen läuft sie abgeschottet in einer eigenen Kapsel – ohne Zugriff auf das Betriebssystem oder andere Apps. Dass die Datei lesbar bleibt, ist Absicht: Deshalb stecken sogar Bilder als Text darin und nicht in einem gepackten Behälter (mehr dazu unter „Was noch kommt“).
{
"format": "aerona-app",
"formatVersion": 1,
"id": "com.aerona.willkommen",
"name": "Aerona Willkommen",
"version": "1.0.0",
"author": "Aerona",
"accent": "#3b82f6",
"permissions": [],
"entry": {
"type": "html",
"html": "<h1>Hallo Aerona!</h1>"
}
}
Gekürzt: Die echte Datei trägt dazu eine Beschreibung, ein Symbol als SVG in einer
einzigen Zeile, im Feld html eine ganze Seite – und in der signierten
Fassung am Ende das Feld signature.
Das Beispiel ist ein Paket nach Version 1: Die ganze Seite steckt in einem einzigen Feld. Ein Paket nach Version 2 bringt mehrere Dateien mit und nennt die, mit der es startet. Jede Datei steht als Text im Manifest, die Datei bleibt also lesbar.
"entry": {
"type": "html",
"main": "index.html",
"files": {
"index.html": "<!doctype html>…",
"app.js": "…",
"style.css": "…"
}
}
Pflichtfelder
"aerona-app" sein – daran erkennt das System die Datei. Steht dort etwas anderes, lehnt AetherOS die Datei schon beim Einlesen ab, bevor irgendetwas davon angezeigt wird.1 für eine einzelne Datei, 2 für ein Paket aus mehreren Dateien. Einen anderen Wert kennt das System nicht und lehnt ihn ab. Bisher ist nur Horizon Audio ein Paket nach Version 2, alle fünf Beispiele sind Version 1.com.aerona.notiz: Buchstaben und Ziffern, durch Punkte getrennt. Unter dieser Kennung legt das System die App ab, und auch ihr eigener Speicher hängt daran. Wer eine App mit derselben Kennung noch einmal installiert, ersetzt die alte Fassung, statt eine zweite daneben zu legen.X.Y.Z, also drei Zahlen mit Punkten, wie 1.0.0 im Beispiel oben. Eine Angabe wie „1.0“ oder „neu“ besteht die Prüfung nicht. Auf der Karte der App steht die Nummer vor dem Namen des Urhebers.html, bei Version 2 als Dateiliste mit main. Version 1 passt für kleine Apps, bei denen eine Seite reicht; Version 2 für alles, was Skript und Stil lieber in eigenen Dateien hat. In beiden Fällen steht jede Datei als Text im Manifest.Optional
#3b82f6. Mit ihr färbt das System die Titelleiste des App-Fensters. Ist die Angabe keine gültige Farbe, nimmt es dieses Blau als Vorgabe.storage, notifications, clipboard, fullscreen, network, gamepad, pointerlock. Was jedes Recht freischaltet, steht weiter unten. Eine leere Liste wie bei „Aerona Willkommen“ heißt: Die App darf nichts davon.app (die Vorgabe) oder game. Ein Spiel bekommt nur einen passenderen Rahmen, sonst gilt alles wie bei einer App: dieselbe Kapsel, dieselbe Inhaltsregel, dieselben Rechte. Gamepad, Vollbild und „Maus fangen“ muss auch ein Spiel eigens anfordern.aerona-sign.js – wie, steht unten unter „Wie eine App signiert wird“.Wie Apps abgesichert sind
network, und auch dann nur über https:.
Das Häkchen „Verifiziert“
Was schon geht
Vier Dinge standen hier lange unter „kommt noch“. Seit dem 25.07.2026 sind sie im AetherOS-Code gebaut:
data:-Adresse im
Feld assets des Manifests – nach Version 1 wie nach
Version 2, zusammen höchstens 4.000.000 Zeichen. Nachgeladen wird nichts.
Die Bildergalerie ist ein Paket nach Version 1 mit vier Beigaben.
window.aerona fragt eine App beim System an. Beantwortet wird
nur, was in ihrer Rechteliste steht. Fehlt das Recht, kommt eine Absage mit
Grund zurück.
"type": "game" öffnet das Fenster mit 960 × 600 statt
720 × 520 und bekommt einen dunklen, ruhigen Rahmen. Gamepad, Vollbild
und „Maus fangen“ bleiben Rechte, die das Spiel anfordern muss.
Was eine App darf
Eine App sitzt in ihrer Kapsel und kommt an nichts heran. Jedes Recht öffnet genau eine Tür. Die Rechte einer App stehen sichtbar auf ihrer Karte, man sieht sie also vor dem Start.
https: laden und senden. Ohne dieses Recht ist jede Verbindung nach außen gesperrt – die Inhaltsregel lässt dann weder etwas hinaus noch herein. Keine der fünf Beispiel-Apps und auch Horizon Audio braucht es.Die Absicherung, genauer
Die vier Punkte oben in der ausführlichen Fassung. Das Sicherheitsmodell hat acht:
network geht nichts hinaus
und nichts herein.
Der Weg einer App, Schritt für Schritt
Vom Einfügen der Datei bis zur laufenden App prüft das System an sechs Stellen. Jede Stelle steht in einer eigenen Datei des AetherOS-Codes.
- Einlesen und prüfen. Das Manifest muss stimmen: Format „aerona-app“, Version 1 oder 2, eine Kennung wie
com.aerona.notiz, ein Name bis 60 Zeichen, eine Versionsnummer X.Y.Z, und es darf nicht zu groß sein. - Signatur nachrechnen. Hat die Datei eine Signatur, rechnet das Installations-Tor sie nach und hält das Ergebnis fest. Ist „Nur signierte Apps“ an, endet hier alles Unsignierte.
- Ablegen. Die App kommt in den Speicher des Systems unter
aerona_installed_apps. Entfernen löscht sie dort samt ihren Daten. - Vor dem Start noch einmal prüfen. Der Speicher könnte seit der Installation verändert worden sein – deshalb wird das Manifest erneut geprüft, und bei eingeschaltetem Tor auch die Signatur.
- Kapsel bauen. Die App bekommt ein Fenster von 720 × 520, ein Spiel 960 × 600. Darin läuft sie in einem Rahmen, der nur Skripte erlaubt, ohne eigene Herkunft. Als Erstes steht dort eine Inhaltsregel, die alles verbietet, was nicht ausdrücklich erlaubt ist.
- Über die Brücke fragen. Was die App vom System will, fragt sie über
window.aeronaan. Jede Anfrage wird gegen ihre Rechteliste geprüft.
Die Grenzen in Zahlen
So steht es im Code, der die Dateien prüft. Was darüber liegt, lehnt das System ab – mit einer Meldung, die das Feld beim Namen nennt, statt die App still abzuschneiden. Zum Vergleich: Die größte App im Format, Horizon Audio, braucht mit 142.674 Bytes nicht einmal ein Zehntel dessen, was ein Paket nach Version 2 darf.
| Was | Grenze |
|---|---|
| Name der App | 60 Zeichen |
| Symbol (SVG) | 20.000 Zeichen |
| Seite einer App nach Version 1 | 500.000 Zeichen |
| alle Dateien eines Pakets nach Version 2 | 2.000.000 Zeichen |
| Beigaben (Bilder, Schriften, Töne, Videos) | 4.000.000 Zeichen |
| eigener Speicher je App | 100 KB, Schlüssel bis 200 Zeichen |
| Text für Zwischenablage oder Hinweis | 20.000 Zeichen |
| Abstand zwischen zwei Hinweisen | 3 Sekunden |
Wie eine App signiert wird
aerona-sign.js sortiert alle Felder des Manifests. Das Feld signature und alle Felder, die mit einem Unterstrich beginnen, bleiben dabei draußen.
.signed.aero.
_verifiziert in der App. Weil Unterstrich-Felder nicht mitgerechnet werden, macht dieser Vermerk die Signatur nicht ungültig.
Wer .aero liest und schreibt
aerona-sign.js erzeugt die signierten Fassungen, packen.js im Ordner von Horizon Audio packt dessen drei Dateien in ein Paket nach Version 2.
Fünf Beispiele, und was jedes zeigt
Zum Format gehören fünf kleine Beispiel-Apps. Sie sind Proben für das Format, keine fertigen Programme.
storage und meldet sich über notifications.storage, gamepad, pointerlock, fullscreen.
Eine echte App gibt es auch schon: die Klangabstimmung
Horizon Audio, als .aero gepackt.
| Datei | Version | Rechte | signiert | Größe |
|---|---|---|---|---|
| Aerona Willkommen | 1 | keine | auch signiert | 1.782 Bytes |
| Notizblock | 1 | storage, notifications | nein | 4.154 Bytes |
| Bildergalerie | 1 | keine (vier Beigaben) | nein | 5.859 Bytes |
| Klangprobe | 1 | keine | auch signiert | 2.983 Bytes |
| Aerona Prall (Spiel) | 1 | storage, gamepad, pointerlock, fullscreen | nein | 9.831 Bytes |
| Horizon Audio | 2 (drei Dateien) | storage | nein | 142.674 Bytes |
Größen der unsignierten Fassungen, ausgelesen am 23. September 2026. Horizon Audio ist das einzige Paket nach Version 2.
Was noch kommt
Das Format wächst weiter. Noch nicht gebaut sind drei Dinge – bei jedem steht, warum es noch wartet: