Wo trägt sich "Amphetamine" als Startobjekt ein?

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Hi,

mich würde interessieren, wo sich das Programm "Amphetamine" als Startobjekt (unter macOS Sierra) einträgt.

Ich habe folgende Orte untersucht:
  • Anmeldeobjekte in den Systemeinstellungen -> Benutzer & Gruppen
  • ~/Library/LaunchAgents
  • ~/Library/LaunchDeamons (Ordner existiert nicht)
  • /Library/LaunchAgents
  • /Library/LaunchDeamons
  • /Library/StartupItems (sowieso veraltet, wenn ich richtig informiert bin)
Ich kann leider nirgendwo Amphetamine bzw. ein unbekanntes Programm finden. Wo könnte ich noch schauen, um zu verstehen, wo sich das Programm einnistet?

Vielen Dank!
 

MACaerer

Charlamowsky
Registriert
23.05.11
Beiträge
12.987
Eine andere Möglichkeit als die von dir genannten gibt es im macos nicht um Programme oder Jobs automatisch zu starten. Wenn allerdings die Agents unter einem Namen abgelegt wurden, der mit dem zu startenden Programm nichts zu tun hat, ist es schwierig sie zu identifizieren.

btw.
In den Benutzer-Libraries gibt es grundsätzlich keine LauchDämons. Dieselben sind nur für Hintergrund-Jobs gedacht ohne Programmfenster und so etwas wird nur in den System-Libraries verwaltet.

MACaerer
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Mmh, ist "kürzlich" mit El Capitan oder Sierra vielleicht eine neue Möglichkeit hinzugekommen? Denn die plist-Dateien in den Ordnern sowie die Einträge unter Benutzer & Gruppen sind mir alle bekannt und ändern sich auch nicht, wenn ich den Autostart in den Einstellungen von Amphetamine ein- und ausschalte.

In der Vergangenheit gab es doch auch mal "com.apple.loginwindow LoginHook/LogoutHook", vielleicht gibt es wieder etwas Neues?

Weiß jemand, wie man kontrollieren könnte, wo Amphetamine zu einer bestimmten Zeit Daten schreibt/ändert?
 

martinv2

Doppelter Prinzenapfel
Registriert
14.04.12
Beiträge
437
Es gibt unter /System/Library auch noch LaunchDaemons- und LaunchAgents-Verzeichnisse. Dorthin sollen sich eigentlich keine Nicht-System-plists verirren, aber wer weiß...
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.476
Weiß jemand, wie man kontrollieren könnte, wo Amphetamine zu einer bestimmten Zeit Daten schreibt/ändert?
Eventuell hilft da das Programm fseventd, das Änderungen im Dateisystem protokollieren kann.
Oder die Findersuche, Systemdateien und versteckte einschließen und sich alle in einem bestimmten Zeitraum geänderten Dateien anzeigen lassen. Ich weiß aktuell nicht, was die kürzeste Zeitspanne ist, aber es g ehr kürzer als ein ganzer Tag.
Mit eingeblendeter Fußleiste kann man dann den Pfad der Datei sehen.
Die Findersuche dürfte aber eher eine plist-Preferencedatei oder ein Log betreffen und nicht anzeigen, wo die Datei selbst liegt bzw. wo sie als Startobjekt eingetragen wurde.
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.540
Eine andere Möglichkeit als die von dir genannten gibt es im macos nicht um Programme oder Jobs automatisch zu starten.

Doch, die gibt es. Eine weitere Möglichkeit hat Apple extra ab Mac OS X 10.6.7 eingerichtet, damit auch Apps aus dem App Store die Möglichkeit bekommen, Menüleistensymbole automatisch starten zu dürfen. Auf die ganzen anderen aufgezählten Ordner haben Apps ja überhaupt kein Zugriffsrecht. Diese weitere Möglichkeit ist die von Apple fest vorgeschriebene und einzig zugelassene API, um selbststartende Hintergrunddienste im Mac App Store anbieten zu dürfen.

Es ist von Apple vorgegeben, dass die App dazu die Funktion SMLoginItemSetEnabled() aufrufen muss und die zu startende Komponente im Bundle der App unter @APPLICATIONPATH/Contents/Library/LoginItems liegt.

Wie das Betriebssystem das technisch umsetzt, ist je nach Systemversion verschieden. Darauf hat die App keinen Einfluss und die entsprechenden Einträge gehören "root". Im aktuellen macOS verwaltet das Service-Management die Einträge mit Eigenschaftslisten, die sich für die jeweiligen Benutzer-Accounts unter /var/db/com.apple.xpc.launchd/loginitems.<UID>.plist befinden. Eine manuelle Änderung an diesem Ordner sollte tunlichst vermieden werden.

Um die ursprüngliche Frage zu beantworten: Amphetamine trägt sich nirgendwo ein, weil eine App sowas nicht darf. Das Programm sendet an macOS aber den Wunsch, ein zweites, in der App mitgeliefertes Hilfsprogramm als unsichtbares "App-Login-Item" zu konfigurieren. Um den Rest kümmert sich macOS selbständig.
 
Zuletzt bearbeitet:

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.282
Schön ist das alles aber nicht. Der Nutzer sollte schon Zugriff auf diese Liste haben.
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.476
Das war früher, als Apple noch einen Visionär an der Spitze hatte und die Human Interface Guidelines beachtete.
Der Nutzer hat bei Appleprodukten leider mehr und mehr keinerlei Zugriff auf irgendetwas. iOS ist da Vorreiter, OS X - bzw, aktuell ja bereits namenshinweisend sich von UNIX trennend macOS - wird dem folgen, der Strategie von d ichem neuen CEO folgend. Profis und kompetente Nutzer bringen wenig Geld, auf Design (eigentlich Styling) schauende DAUs um so mehr.
In diesem Fall, denke ich aber, kannst du den Eintrag verhindern, indem du das Programm deinstallierst. Selbst wenn sich der Eintrag vielleicht nicht löschen lassen sollte, selbst nicht mit den New Apple wohl sowieso nervenden root-Rechten.
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.540
Schön ist das alles aber nicht. Der Nutzer sollte schon Zugriff auf diese Liste haben.

Der Nutzer hat vollen Zugriff auf diese Einstellung. Dazu muss es für jeden Eintrag in der zugehörigen App (aber auch nur da!) eine entsprechende Wahlmöglichkeit geben. Wäre diese Wahlmöglichkeit nicht vorhanden, wäre die App nicht für den App Store zugelassen worden. Wird die zugehörige App deinstalliert, wird die zugehörige Einstellung automatisch unwirksam.

EDIT: Nachtrag: Laut Dokumentation des Herstellers befindet sich bei "Amphetamine" die Einstellung bei "Preferences > General > Launch Behavior > Launch Amphetamine at login".

Die Liste als solche muss vom System geschützt sein, sonst wäre eine Sicherheitslücke im Konzept des App Store.
 
Zuletzt bearbeitet:

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Danke @Marcel Bresink, das ist genau die Erklärung, die ich gesucht habe!

Ich habe noch herausgefunden, dass der automatische Start durch Drücken der Shift-Taste nicht vermieden werden kann, was ich nicht so schön finde. Werde daher die Option in den Einstellungen von Amphetamine deaktivieren und die App in den Systemeinstellungen eintragen ...

Schade, dass diese Liste nicht einfach durch die Systemeinstellungen einsehbar und editierbar gemacht wird. :(

Noch mal vielen Dank für eure Mühe! :)
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.540
Werde daher die Option in den Einstellungen von Amphetamine deaktivieren und die App in den Systemeinstellungen eintragen ...

Bei Amphetamine ist das möglicherweise sinnvoll, bei den meisten Menüleisten-Apps, die von Apple gezwungen worden sind, diese Technik zu verwenden, ist das aber nicht so.

Die meisten dieser Apps öffnen beim "normalen" Start, wie er auch über ein Anmeldeobjekt in den Systemeinstellungen erfolgen würde, ein Dock-Symbol und ein Hauptfenster. Das wollen aber die meisten Benutzer gar nicht. Sie wollen nur das Symbol in der Menüleiste sehen und bei der Anmeldung nicht durch überflüssige Dinge belästigt werden. Auch die Menüleistenelemente von Apple, wie z.B. die Uhr, verhalten sich ja so.

Das über zwei verschachtelte Apps zu machen, bei denen der Menüleistenteil durch SMLoginItemSetEnabled angemeldet wird, ist der einzige von Apple im Store erlaubte Mechanismus, um dies zu realisieren.