PND-Datei

Aus PandoraWiki

Wechseln zu: Navigation, Suche
Datei:Baustelle.png Diese Seite wurde von T4b als Baustelle markiert. Begründung:
Noch nicht fertig, aber was drin steht sollte schon stimmen.

Bitte hilf mit diese Seite zu verbessern und entferne diesen Baustein, sobald die beschriebenen Mängel behoben sind.

Eine .pnd ("pandora") Datei ist ein Programmpaket für die Pandora, eine solche Datei kann eines oder mehrere Programme enthalten. Im Prinzip besteht jede .pnd-Datei aus einem Archiv (im Augenblick ISO oder squashfs, in der Zukunft sind auch andere Formate möglich), in dessen Stammverzeichnis eine Datei "PXML.xml" und beliebig viele andere Dateien und Ordner sind. An das Ende des Archivs wird noch einmal die PXML.xml und das (optionale) Icon angehängt, damit das System schneller darauf zugreifen kann, was aber nicht zwingend notwendig ist, damit sie funktioniert. Genau genommen muss sie nicht einmal ein Archiv sein, es funktioniert auch mit einem Ordner, nur die "PXML.xml" ist zwingend notwendig.

Inhaltsverzeichnis

"Installieren" einer PND

Sobald ein Datenträger (SD Karten, aber auch Festplatten...) an die Pandora angeschlossen wird, werden bestimmte Ordner darauf auf PNDs untersucht (alles zu untersuchen würde je nach Grösse/Geschwindigkeit des Datenträgers zu lange dauern). Je nach dem Ordner, in dem die PND ist, wird sie im Hauptmenü, auf dem Desktop, an beiden Orten oder auch nur im Minimenü angezeigt:

OrdnerWo die PND angezeigt wird
/pandora/desktopAuf dem Desktop
/pandora/menuIm Hauptmenü
/pandora/appsAuf dem Desktop und im Hauptmenü
/pandora/mmenuIm Minimenü

Sämtliche Unterordner werden auch durchsucht und es macht keinen Unterschied, ob eine PND im Ordner selbst, oder in einem Unterordner abgelegt wird, aber dieses System ermöglicht das Sortieren der PNDs auf Dateiebene. Es gibt eine Konfigurationsdatei, in der angepasst werden kann, wo nach PNDs gesucht wird, "/etc/pandora/conf/apps". Darin muss man, relativ am Anfang der Datei, im Block "[autodiscovery]" "searchpath" und "notifypath" anpassen. Die einzelnen Einträge werden durch ":" getrennt und "*", die auf alles zutreffen, können verwendet werden. Auf Hotfix5 sieht der (relevante) Anfang der Datei normalerweise so aus:

# Open Pandora
# Application configuration

[autodiscovery]
# searchpath is a list of paths (colon separated) in which to look for PXML.xml or .pnd-file applications
searchpath      /media/*/pandora/apps:/media/*/pandora/desktop:/media/*/pandora/menu:/usr/pandora/apps
# notifypath is a list of paths to monitor; if anything in those paths changes, the searchpath is rescanned
# note that for each path chunk, all current subdirs of that path are also watched)
notifypath      /media/*/pandora/apps:/media/*/pandora/desktop:/media/*/pandora/menu:/usr/pandora/apps

"/media/*/pandora/apps" heisst z. B., dass der Ordner "pandora/apps/", der selbst in einem x-beliebigen Ordner, der wiederum in "/media/" liegt (dort werden SD-Karten, Festplatten, usw gemounted, sprich so in das System eingebunden, dass sie aussehen wie Ordner).


Appdata

Fast alle PNDs werden irgendwelche Konfigurationsdateien speichern, manche brauchen noch zusätzliche Daten (z. B. Emulatoren oft ein BIOS (auf Wikipedia) der jeweiligen Konsole), sie könnten sich auch selbst verändern, usw. Alle PNDs, die sich an die Richtlinien halten, speichern diese Daten in ihrem "Appdata" Ordner. Dieser ist auf dem gleichen Datenträger, auf dem auch die PND ist, aber unabhängig vom Speicherort der PND immer im Ordner "pandora/appdata/name-id/". "name" ist der Name der PND, "id" irgendetwas, was den Namen eindeutig machen soll (z. B. wenn es einen Port eines Spiels von zwei verschiedenen Entwicklern gibt, die beide Vor- und Nachteile haben, so dass man beide gleichzeitig installiert haben kann). Wenn sich der Entwickler nicht an die Richtlinien hält hat er das hoffentlich im (hoffentlich) beiliegenden "Readme" beschrieben.

Der Appdata-Ordner wird, wenn eine PND gestartet wird, über die eigentlich PND gelegt, wenn es zwei Dateien mit gleichem Namen gibt ist nachher die Datei aus dem Appdata-Ordner für das Programm sichtbar. Wenn das Programm versucht seine PND zu verändern, gehen diese Änderungen auch in den Appdata-Ordner. Wenn man eine Datei (z. B. eine Grafik) in der PND ersetzen will, kann man also einfach eine gleichnamige Datei an der selben Stelle in der Dateistruktur in Appdata erstellen, z. B. wenn man die Datei "irgendeinorder/bla.png" in der PND ersetzen will, erstellt man im Appdata-Ordner der PND den Ordner "irgendeinordner" und darin die verändert Datei "bla.png".

Overrides

Mit sogenannten "Overrides" kann man Dinge am verhalten der PND anpassen, ohne die PND selbst zu verändern. Mit einer ".png"-Datei mit dem gleichen Namen wie die PND (bei "name.pnd" einfach "name.png") im gleichen Ordner wie die PND kann man das Icon anpassen, mit einer ".ovr"-Datei in der gleichen Weise andere Dinge. Eine ".ovr"-Datei ist eine Textdatei (Linux-Zeilenenden, nehme ich schwer an) mit Blöcken für die verschiedenen Programme in der PND (oder nur einer für ein Programm). In den Blöcken stehen dann Name-Wert-Paare im Format "name<tab>wert" (<tab> ist ein Tabulator). z. B.:

[Application-0]
title                   HatariHack0
maincategory            Audio
maincategorysub1        Emulator
[Application-1]
title                   HatariHack1
clockspeed              200
note-1                  Bla Bla BlaBla

"[Application-0]" ist das erste Programm in der PND, "[Application-1]" das zweite, usw.

  • "title" überschreibt den angezeigten Titel der PND
  • "maincategory" überschreibt die Hauptkategorie
  • "maincategorysub1" überschreibt die Unterkategorie
  • "clockspeed" überschreibt die verwendete Geschwindigkeit der CPU beim starten des Programms.
  • "note-1" ist eine Zeile Text, die in Minimenü unter der Beschreibung angezeigt wird.
  • "note-2" ist eine weitere Zeile Text, die in Minimenü unter der Beschreibung angezeigt wird.
  • "note-3" ist noch einmal eine Zeile Text, die in Minimenü unter der Beschreibung angezeigt wird.

PNDs öffnen/entpacken

Um PNDs zu öffnen, also ihren Inhalt anzuschauen, gibt es verschiedene Wege:

  • Man startet die PND, minimiert sie (wenn das nicht möglich ist muss man eine andere Methode nehmen) und schaut dann in den Ordner "/mnt/utmp/". Da gibt es einen Ordner mit dem gleichen Namen wie der Appdata-Ordner der PND, in dem der Inhalt inklusive dem des Appdata-Ordners ist. Bis jetzt gibt es noch die Möglichkeit die PND ohne dem Appdata-Ordner aus "/mnt/pnd/" zu holen, aber mit dem HotFix6 wird dies nicht mehr möglich sein.
  • Auf einem Linux-PC gibt man den Befehl "unsquashfs -d OrdnerMitDenEntpacktenDateien name.pnd" und dann optional eine Liste der Dateien und Ordner, die entpackt werden sollen. Falls die PND eine ISO ist, was ab und zu vorkommt, geht das nicht
  • Bei PNDs die im ISO-Format sind, gibt es viele Programme wie Winrar auf Windows oder "file-roller" ("Archivmanager") auf Ubuntu, die sie öffnen können. Je nach dem muss die Datei vorher nach "name.iso" umbenannt werden.
  • Auf Windows kann man 7z verwenden, um die PND zu öffnen. Geht auf jeden Fall mit squashfs, wenn man die PND mit einer ".sfs"-Endung ausstattet, mit ISO wohl höchstwahrscheinlich genauso (bitte testen, ich hab nicht Windows).

PNDs erstellen/verändern

Also normaler Nutzer, der nur für sich persönlich eine Veränderung vornehmen will, sollte man lieber die Variante mit dem Appdata-Ordner wählen (siehe oben). Sobald man seine Änderung aber teilen will, geht kein Weg mehr daran vorbei, die PND zu entpacken und dann mit den Veränderungen neu zu packen. Um sie zu entpacken sind beim Abschnitt PNDs öffnen diverse Möglichkeiten beschrieben. Um sie nachher wieder zu erstellen muss man zuerst einmal eine PXML.xml-Datei haben. Falls man etwas updaten will, sollte man dort mindestens die Versionsnummer ändern, wenn man etwas verändern will (so dass Jemand auch beide Versionen der PND haben kann) auch noch die PND-ID (<package id="DiePND-ID">), die Programm-ID (<application id="DieProgrammID") und den Titel (<title>-Tags) anpassen. Dann sollte man noch, falls noch nicht vorhanden, ein Icon für die PND beilegen, welches auch in der PXML.xml-Datei eingetragen werden muss. Jetzt kann man den Ordner an die richtige Stelle kopieren und testen, oder auch gleich so veröffentlichen (nicht empfohlen). Dann kann man die PND packen, was je nach Plattform und Format unterschiedlich geht:

Linux

Squashfs von Hand

Als erstes erstellt man aus dem Ordner ein squashfs-Dateisystem:

mksquashfs OrdnerMitDenDateien/ MeinePnd.tmp

Dann hängt man die PXML.xml und optional das Icon an; um das Icon wegzulassen lässt man einfach "OrdnerMitDenDateien/icon.png" aus dem Befehl weg:

cat MeinePnd.tmp OrdnerMitDenDateien/PXML.xml OrdnerMitDenDateien/icon.png > MeinePnd.pnd

Dann kann man noch die Datei "MeinePnd.tmp" löschen:

rm MeinePnd.tmp

ISO von Hand

Also erstes erstellt man aus dem Ordner eine ISO:

mkisofs -R OrdnerMitDenDateien/ -o MeinePnd.iso

Dann hängt man die PXML.xml und optional das Icon an; um das Icon wegzulassen lässt man einfach "OrdnerMitDenDateien/icon.png" aus dem Befehl weg:

cat MeinePnd.iso OrdnerMitDenDateien/PXML.xml OrdnerMitDenDateien/icon.png > MeinePnd.pnd

Dann kann man noch die Datei "MeinePnd.iso" löschen:

rm MeinePnd.iso

pnd_make

????

Windows

Squashfs

????

ISO

????

Tipps und Tricks (für Entwickler)

Siehe PND-Datei/Tipps und Tricks

Persönliche Werkzeuge