Wie mache ich Pakete von f-droid so, dass sie als von einer "bekannten Quelle" behandelt werden (wenn ich root habe)?

Normalerweise erhalte ich Pakete aus dem http://f-droid.org/-Repository über deren Paketbrowser (weil ich dann eine Garantie habe, dass ich kostenlose (= freie) Software verwende); und sie sind mit ihrem Schlüssel signiert.

Ich verwende CyanogenMod 10; und ich habe Root-Zugriff.

Ich mag es nicht, Pakete aus "unbekannten Quellen" dafür zuzulassen.

Kann ich das System so einrichten, dass f-droid als bekannte Quelle zählt und Pakete aus allen anderen unbekannten Quellen standardmäßig nicht wie bisher installiert werden dürfen.

Vielleicht können etwas Patches in der CyanogenMod-Distribution sein, um den Schlüssel von f-droid als Schlüssel für eine "bekannte Quelle" von Paketen hinzuzufügen.

Antworten (3)

Fast jede F-Droid-App ist mit einem anderen Schlüssel signiert, obwohl sich alle Schlüssel im selben Schlüsselspeicher befinden. Damit der Schalter umgangen werden kann, müsste der F-Droid-Client als System-App installiert und als solche sicher zum Laufen gebracht werden. Damit dies funktioniert, wurde Code bereitgestellt, der jedoch noch nicht integriert wurde.

Im Prinzip könnte man also einen neuen "bekannten" Schlüssel hinzufügen, aber bei Apps von f-droid gibt es so viele Schlüssel, dass dies nicht praktikabel ist; Der einzige praktische Weg besteht darin, den f-droid-Client selbst als System-App zu haben, der die Signaturprüfung durchführt. Habe ich die Situation richtig verstanden?
data/app ist im Besitz des Systembenutzers, sodass jede System-App eine apk dort einfügen kann, ohne das Paketinstallationsprogramm durchlaufen zu müssen. Es hat also nichts mit Signaturen der Apps zu tun, sondern F-Droid müsste mit dem Systemschlüssel signiert werden.
Ich bin mir nicht sicher warum, aber es ist nicht notwendig, dass F-Droid apk mit dem Systemschlüssel signiert wird, zumindest wenn man CyanogenMod verwendet.
Sollte ich also einen neuen F-Droid oder ein neues CM für diese Funktion ausprobieren?

Laut diesem Changelog sollte die kommende f-droid Version 0.71 dies unterstützen.

Eine weitere Erwähnung dazu findet sich in: https://github.com/WhisperSystems/TextSecure/issues/127#issuecomment-51065857

Es gibt eine F-Droid-Berechtigungserweiterung

https://f-droid.org/en/packages/org.fdroid.fdroid.privileged.ota/

Damit sollten Sie in der Lage sein, Apps zu installieren, ohne "unbekannte Quelle" aktivieren zu müssen.

Es gibt zwei Möglichkeiten zur Installation. eine mit Sideload. ein anderer mit adb root. Ich werde beide unten erklären.

Wenn es richtig gemacht wird, sollte fdroid mit der Berechtigungserweiterung sogar ein Zurücksetzen auf die Werkseinstellungen überstehen. es ist dann ein Teil des Systems.


Vorbereitungen für beide Installationsmethoden

  • Laden Sie die F-Droid-Berechtigungserweiterung von der F-Droid-Website auf Ihren PC herunter.

    https://f-droid.org/en/packages/org.fdroid.fdroid.privileged.ota/

    Zum Herunterladen müssen Sie nach unten scrollen und dann die neueste ZIP-Datei herunterladen. der Dateiname sollte in etwa so lauten:org.fdroid.fdroid.privileged.ota_2110.zip

  • installiere adb auf deinem pc und aktiviere "usb debugging" auf deinem gerät. suchen Sie im Internet nach, wie das geht.

    adb ist ein Befehlszeilentool, öffnen Sie also ein Terminal. Navigieren Sie dann zu dem Verzeichnis, in dem sich die privilegierte Erweiterungs-ZIP-Datei befindet.

  • Verbinden Sie das Gerät über ein USB-Kabel mit Ihrem PC.

  • Überprüfen Sie mit dem Befehl, ob das Gerät erkannt wird adb devices.

    es sollte so etwas zeigen:

    $ adb devices
    List of devices attached
    <some number> device
    

    Wenn es sagt unauthorizedoder irgendetwas anderes, müssen Sie Ihre Verbindung debuggen. suchen Sie im Internet nach, wie das geht.


die Sideload-Methode

Dazu benötigen Sie eine benutzerdefinierte Wiederherstellung, die Sideload auf Ihrem Gerät installiert ermöglicht.

Wenn Sie lineageos installiert haben, haben Sie normalerweise bereits eine geeignete benutzerdefinierte Wiederherstellung. andernfalls laden und installieren Sie twrp ( https://twrp.me/ ).

  1. Verbinden Sie Ihr Gerät mit einem USB-Kabel mit dem PC. Überprüfen Sie, ob das Gerät unter aufgelistet ist

     adb devices
    
  2. Booten Sie Ihr Gerät zum Seitenladen

     adb reboot sideload
    

    ODER: Starten Sie Ihr Gerät zur Wiederherstellung

     adb reboot recovery
    

    Stellen Sie dann auf Ihrem Gerät in der Wiederherstellung das Gerät auf Sideload ein. In der Lineageos-Wiederherstellung heißt dies "Apply Update" und dann "Apply from ADB".

  3. Berechtigungserweiterung per Sideload installieren

     adb sideload org.fdroid.fdroid.privileged.ota_2110.zip
    
  4. Gerät wieder auf Android neustarten.

     adb reboot
    

    ODER: Klicken Sie im Wiederherstellungsmenü auf Neustart

Überprüfen Sie, ob die Berechtigungserweiterung aktiviert ist. siehe unten, wie das geht.

Mehr Informationen:


die ADB-Root-Methode

Dazu muss auf Ihrem Gerät auch "rooted debugging" aktiviert sein (neben "usb debugging").

Es scheint, dass "rooted Debugging" nur verfügbar ist, wenn Sie ein benutzerdefiniertes Rom wie Lineageos installiert haben.

Entpacken Sie die heruntergeladene Berechtigungserweiterung.

Führen Sie nun nacheinander die folgenden adb-Befehle aus

adb root
adb remount
adb push F-DroidPrivilegedExtension.apk /system/priv-app/
adb push permissions_org.fdroid.fdroid.privileged.xml /system/etc/permissions/
adb push F-Droid.apk /system/app/
adb push 80-fdroid.sh /system/addon.d/
adb reboot

Vergewissern Sie sich, dass nach jedem Schritt keine Fehlermeldungen angezeigt werden. außer adb remountwas bei neueren Lineageos-Versionen unnötig zu sein scheint. aber kein Schaden angerichtet (soweit ich verstehe), also fahre trotzdem fort.

Überprüfen Sie nach dem Neustart, ob die Berechtigungserweiterung aktiviert ist.

Mehr Informationen:


So überprüfen Sie, ob die Berechtigungserweiterung aktiviert ist

  1. Öffnen Sie F-Droid
  2. gehe zu den Einstellungen
  3. ganz nach unten scrollen
  4. Expertenmodus aktivieren (öffnet weitere Einstellungen unten)
  5. scrollen Sie wieder ganz nach unten
  6. Wenn neben „privilegierte Erweiterung“ ein grünes Häkchen angezeigt wird, ist sie aktiviert.

"privilegierte Erweiterung" ist die allerletzte Option auf der Einstellungsseite. Wenn Sie ganz nach unten gescrollt haben und die letzte Option nicht „privilegierte Erweiterung“ ist, dann ist die privilegierte Erweiterung nicht aktiviert. auch wahrscheinlich nicht richtig installiert.


Anmerkungen:

Ich habe viele fdroid mit Berechtigungserweiterungen auf vielen Lineageos auf vielen Geräten installiert. oft gab es auf dem weg hicks und es funktioniert nicht aus gründen die ich nicht verstehe.

Meistens habe ich es nach einiger Suche im Internet und etwas Basteln geschafft, es zum Laufen zu bringen. Manchmal scheint es nur dummes Glück zu sein, durch Zufall die richtige Befehlskombination zu finden, um es zum Laufen zu bringen.

manchmal geht es einfach nicht. tut mir leid, dass ich dir dann nicht weiter helfen kann.


Sie haben dies auch als Magisk-Modul