Ich habe Fairphone 2, auf dem Fairphone Open OS läuft, und ich unternehme große Anstrengungen, um die Installation unfreier (wie in Freiheit) Software darauf zu vermeiden und die Privatsphäre zu optimieren.
Ich möchte eine Wischeingabe, aber ich möchte die Google-Tastatur nicht installieren (LatimeImeGoogle.apk) Standardmäßig verfügt das Betriebssystem über eine AOSP-Tastatur. Ich habe auch das wunderbar codefreundliche AnySoftKeyboard (das auch tolle Themen hat) und Hacker's Keyboard von F-Droid installiert, aber obwohl sie für mich nützlich sind, haben sie keine Swipe-Eingabe.
Ich habe diesen Beitrag gelesen , was mich denken lässt, dass ich die Quelle bekommen und die Tastatur kompilieren muss. Ich weiß im Moment nicht, wie ich das machen soll, aber ich bin bereit, es zu lernen. Ich habe versucht, die im Beitrag erwähnte Bibliothek zu ersetzen (indem ich betrüge und die richtige Bibliothek aus der Google-APK nehme), und nichts hat sich geändert (wenn ich die Bibliothek lösche, funktioniert die Tastatur nicht mehr vollständig, also nehme ich eindeutig eine Systemänderung vor, indem ich sie ersetze - es macht einfach nicht was ich will).
Ich möchte eines der folgenden, in der Reihenfolge meiner Präferenz
Natürlich habe ich root :)
*Ich habe ein Ubuntu-System, mit dem ich auf meinem Laptop spielen kann, wenn es hilft ...
Die standardmäßige AOSP-Tastatur wird nicht mit Streichen geliefert. Es wird nicht in den Einstellungen angezeigt. Der einfache (aber unangenehme) Grund ist, dass Google diese Funktion für zu "geheim" hielt, um sie im Open-Source-Code zu veröffentlichen, und sie daher in einer proprietären Bibliothek ausliefern.
Wenn Sie möchten, können Sie diese Bibliothek nach der ROM-Installation (und jedem Update!) auf Ihr Gerät übertragen. Es wird benannt libjni_latinimegoogle.so
und muss eingefügt werden /system/lib
.
Für mich (Android 7.1, ARM) war diese Bibliothek ein wirklich kleines (944 kB) und veraltetes (aktualisiertes 2008) Ding. (sha256sum: 442a2a8bfcb25489564bc9433a916fa4dc0dba9000fe6f6f03f5939b985091e6
)
Optional
Verzeichnis finden Sie ein weiteres Archiv swypelibs-lib-arm.tar.lz
. Extrahieren Sie das und Sie erhalten die libjni_latinimegoogle.so
Datei./system
Stellen Sie sicher, dass Sie die Partition beschreibbar einhängen . In TWRP müssen Sie zu "Mount" -> (falls erforderlich, deaktivieren) "mount /system in read-only" gehen und es dann mounten, indem Sie das Kontrollkästchen für "/system" aktivieren.adb push /path/to/libjni_latinimegoogle.so /system/lib
) und starten Sie neu.Es sollte funktionieren!
Ich sagte, Sie müssen dies für jedes Update tun. Sie können aber auch ein kleines OTA-Survival-Skript erstellen, das die Datei sichert, wenn das System aktualisiert wird.
Hier ist mein (derzeit experimenteller) Vorschlag:
#!/sbin/sh
#
# /system/addon.d/95-latinimegoogle.sh
# During an OS upgrade, this script backs up /system/lib/libjni_latinimegoogle.so,
# /system is formatted and reinstalled, then the file is restored.
#
. /tmp/backuptool.functions
list_files() {
cat <<EOF
lib/libjni_latinimegoogle.so
EOF
}
case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/"$FILE"
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/"$FILE" "$R"
done
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
# Stub
;;
esac
Auch auf GitHub verfügbar: https://gist.github.com/rugk/a4c9fa11c5c031faf45602d6bf922a1c
/system/addon.d
Verzeichnis ( adb push 95-latinimegoogle.sh /system/addon.d
). (Auch hier müssen Sie sicherstellen, dass /system
es montiert ist.)adb shell
Gehen Sie in Ihrem Gerät über cd /system/addon.d
und zum Verzeichnis: chmod +x 95-latinimegoogle.sh
./system/lib64
wenn Sie auf einem ARM64 laufen. Es hat eine Weile gedauert, bis ich es herausgefunden habe, da es immer noch eine gibt /system/lib
. Natürlich muss der Pfad auch im OTA Survival Script angepasst werden./system
und verwenden Sie dann z. B. den integrierten Dateimanager (Aroma), um die Datei zu kopieren. Nach dem erneuten Neustart ist die Gesteneingabe verfügbar.Der OTA Survival Script/Configuration Fragment Hack funktionierte auf dem OnePlus 3T nach dem letzten OEM-Firmware-Update von OnePlus nicht mehr. (Obwohl das letzte OEM-Firmware-Update für das OnePlus 3T im Juli 2019 von OnePlus veröffentlicht wurde, fühle ich mich gezwungen, dies dennoch zu schreiben, da ich bisher niemanden gesehen habe, der dies erwähnt hat.) Ich denke, das liegt daran, dass die LineageOS-Betreuer mit der oneplus3
Verwendung begonnen haben Digest-Dateien und dies verifiziert Systemkomponenten anhand eines Satzes von Signaturschlüsseln, was immer dazu führt, dass das Telefon das benutzerdefinierte OTA-Überlebensskript verschwindet. Das bedeutet also, dass Sie auf die „obere“ Hälfte der Lösung von rugk beschränkt sind . Also, nach meiner Erfahrung mit den Telefonen, die ich habe, denke ich, dass der "untere" Teil der Lösung nur auf beiden funktioniert:bacon
) oder alle 64-Bit-Android-Geräte mit LOS-Builds, die keine Digest-Dateiprüfung verwenden. (Ich weiß nicht, wie ich dies auf beliebigen LOS-verfügbaren Geräten überprüfen kann.)
Der libjni_latinimegoogle.so
Hack erfordert TWRP als Ihre benutzerdefinierte Wiederherstellung, um zu funktionieren. Seit LOS 17.1-18.1 wird Lineage Recovery für alle Geräte mit LOS-Builds angeboten. Verwenden Sie Lineage Recovery jedoch nicht, wenn Sie diesen libjni_latinimegoogle.so
Hack verwenden. Wenn Sie über Lineage Recovery verfügen, existiert das /system/lib64
Verzeichnis aus irgendeinem Grund einfach nicht, selbst wenn Sie den Gerätespeicher über Lineage Recovery mounten. Dies wurde auf einem OnePlus 3T/ beobachtet oneplus3
.
Basierend auf dem, was ich gelesen habe, schließe ich, dass dieser libjni_latinimegoogle.so
Hack einfach nicht auf einem benutzerdefinierten ROM funktioniert, das den verifizierten Start durch erneutes Sperren des Bootloaders ordnungsgemäß implementiert. Ab Mai 2021 sind CalyxOS und GrapheneOS zwei ROMs, die einen verifizierten Start verwenden. Daher wird das Ablegen libjni_latinimegoogle.so
zwischen Systemdateien wahrscheinlich verboten sein. Selbst wenn dieser Hack der Gesteneingabe-Bibliothek hypothetisch möglich wäre, wäre das meiner Meinung nach eine extrem schlechte Sicherheitspraxis/-maßnahme. Wenn Ihr Anwendungsfall/Bedrohungsmodell Open-Source-Tastaturen von Drittanbietern zulässt, würde ich stattdessen FlorisBoard empfehlen , das kürzlich das so genannte „Gleitschreiben“ implementiert hat und auf F-Droid verfügbar ist. (Nur um das klarzustellen, ich bin nicht mit CalyxOS, GrapheneOS oder FlorisBoard verbunden.) AnySoftKeyboard versprach eine Art Gleit-/Gesteneingabe, aber das war im Jahr 2018 und ASK hat diese Funktion nie vollständig implementiert, als ich ASK einmal müde wurde 2020, IIRC.
Update für Lineage OS 17.1 (Android 10.0)
Basierend auf diesem Reddit unterscheidet sich Schritt 4 der detaillierten Anleitung von rugk wie folgt (unter Verwendung von TWRP, da das Übertragen der Datei mit adb nicht funktionierte):
libjni_latinimegoogle.so
auf Ihr Telefon ( /sdcard
)system
gemountet ist und „read-only“ nicht angehakt istmv /sdcard/libjni_latinimegoogle /system/product/lib/
chmod 644 /system/product/lib/libjni_latinimegoogle
cd /system/product/app/LatinIME/lib/arm/
rm libjni_latinime.so
ln -s /system/product/lib/libjni_latinimegoogle.so libjni_latinime.so
Die obige Lösung funktioniert wie ein Zauber mit einem Samsung S5 Neo (s5neolte/SM-G903F) und Lineage OS 17.1 (Android 10).
libjni_latinimegoogle.so
Wie oben erwähnt, können Sie aus Open GApps extrahieren . Bei den Download-Möglichkeiten spielt es keine so große Rolle, für welche Android-Version Sie sich entscheiden. Es scheint, dass die Datei zumindest seit Android 7.1 nicht geändert wurde. Folgende Einstellungen habe ich verwendet:
Xangua
Du bist AGitForNotUsingGit
Du bist AGitForNotUsingGit
Zanna
Du bist AGitForNotUsingGit
Zanna
Du bist AGitForNotUsingGit
Zanna
Du bist AGitForNotUsingGit
Zanna