Kann in Eingabeaufforderung kein Passwort für Keytool eingeben - keine Reaktion auf Tastatureingabe

  • 17 Antworten
  • Neuester Beitrag
Diskutiere Kann in Eingabeaufforderung kein Passwort für Keytool eingeben - keine Reaktion auf Tastatureingabe im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

Andi91

Neues Mitglied
Hallo,
ich habe ein merkwürdiges Phänomen.
Ich versuche gerade mit Keytool eine App zu zertifizieren, aber sobald in der Eingabeaufforderung das Passwort verlangt wird, kann ich mit der Tastatur nichts mehr eingeben. Es gibt keine Reaktion auf die Tastatur. Ansonsten funktioniert die Tastatur aber einwandfrei. Auch mit der Bildschirmtastatur geht es nicht. Woran kann das liegen?
 
swa00

swa00

Moderator
Teammitglied
Hallo @Andi91,

Ist das originale Keystore Datei per Parameter eingebunden und auch nicht verändert worden ?
Erst dann wird i.d.R. auch die passwortabfrage auf valid gesetzt.

Oder was bedeutet bei Dir "App zu zertifizieren" ?
(Schritt für Schritt)

P.S. Man benutzt keytool eigentlich nicht mehr, da deprecated
 
Zuletzt bearbeitet:
A

Andi91

Neues Mitglied
Ich bin nach untenstehender Anleitung vorgegangen und habe folgendes in die Eingabeaufforderung eingegeben:
keytool -genkey -v -keystore my.keystore -alias cert -keyalg RSA -keysize 2048 -validity 10000

Wie signiert man heutzutage denn eine APK-Datei.


Dies ist eine Kopie der Anleitung:

Signieren der APK-Datei


Apps müssen signiert werden, bevor diese auf dem Gerät installiert werden können. Über die Signatur lässt sich der Autor einer App eindeutig bestimmen. Im Nachhinein können wir keine Änderungen mehr am Quellcode machen, ohne dabei auch die Signatur der App zu verändern. Dadurch wird verhindert, dass jemand die App manipuliert und anschließend wieder als offizielle Anwendung, beispielsweise von Google, ausgeben kann.


In Android werden die Schlüssel für die Signatur über den Keystore abgebildet. Der Keystore selbst ist mit einem privaten Schlüssel, den nur ich kenne, geschützt. Darin können wir dann beliebige Public/Private-Keys sicher speichern, die anschließend über ein selbst definiertes Alias referenzierbar sind. Die Private Keys im Keystore sind mit einem weiteren Passwort geschützt.


Visualisierung Keystore


Mit folgendem Aufruf können wir nun unsren eigenen Keystore erzeugen:


keytool -genkey -v -keystore my.keystore -alias cert -keyalg RSA -keysize 2048 -validity 10000

Der Parameter -alias wird verwendet, um den Namen für unser eigenes Public/Private-Key-Paar festzulegen und dieses automatisch dem Keystore hinzuzufügen. Die Gültigkeitsdauer der Schlüssel wird über den Parameter -validity in Tagen angegeben.
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
@Andi91

Wie signiert man heutzutage denn eine APK-Datei.
Mit AndroidStudio direkt beim Export eines Bundels/APK als Release

Von wem stammt denn die APK ?
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
@swa00
Das wird nicht seine sein. Denn Quellcode wird er nicht haben.
In seinen Threads sieht mann das er an fertigen fremden apks rumfummelt.
 
swa00

swa00

Moderator
Teammitglied
@jogimuc

Noch ist das eine Vermutung , wenn das so stimmt - wovon ich auch ausgehe - dann erfolgt die zielgerichtete Antwort :)
 
Zuletzt bearbeitet:
A

Andi91

Neues Mitglied
Es ist eine einfache Vokabel-App, wo man selber Vokabeln eingeben kann. Ich habe seit einiger Zeit sozusagen das Hobby "Englisch lernen" Ich habe im Laufe der letzten 10 Jahre mehrere tausend Vokabeln eingegeben. Geordnet nach Büchern und Kapiteln, aus denen sie stammen. So lerne ich Englisch mit Hilfe von Büchern und deren Hörbüchern, die unbekannten Vokabeln kommen in die App. So ist diese App sehr wichtig für mich geworden und durch das Eingeben der vielen Vokabeln steckt da viel Arbeit drin. Leider ist die App seit 2015 nicht mehr im Playstore, wohl wahrscheinlich weil sie wenig Downloads hatte, aber ich finde sie extrem gut und habe mir sicherheitshalber mit einer App eine APK daraus generiert, um sie immer wieder auf neuen Geräten installieren zu können. Die Vokabeldaten kann man für diesen Umzug exportieren und Importieren.
Da ich eine erblich bedingte fortschreitende Sehbehinderung habe werden meine Augen zunehmend schlechter und ich muss mich darauf vorbereiten, dass das in der nächsten Zukunft zu immer stärker werdenden Problemen führt. Im Moment habe ich noch eine Sehfähigkeit von 50%, aber das wird in der nächsten Zeit weiter abnehmen und darauf muss ich mich vorbereiten. Deshalb wollte ich schon mal mit der App auf ein Tablet umziehen, weil da alles größer ist. Ich hatte auf dem Smartphone auch schon größere Darstellungen eingestellt. Auf dem Smartphone gibt es aber mit dieser App Probleme mit der Einstellung einer großen Darstellung und Schrift, weil sich dann Elemente überlappen. Ich möchte ein Handy mit großem Display, damit alles größer ist, also quasi ein 15 Zoll Smartphone, um für die nächste Zeit gewappnet zu sein, wenn das Sehen schlechter wird. Aber ein Tablet (Samsung Tab S8 Ultra) ist kein 15 Zoll Smartphone musste ich leider feststellen.
Leider hat sich gezeigt, dass die Vokabel-App auf dem Tablet anders dargestellt wird, als auf dem Smartphone. Inhalte von 2 Screens auf dem Smartphone sind auf dem Tablet auf einem Screen und so habe ich nicht viel gewonnen. Auch wieder das Problem mit Überlappungen. Also habe ich hier im Forum nach Möglichkeiten gefragt, ob man einer App irgendwie vorgaukeln kann, dass das Tablet ein Smartphone ist. Das führte aber zu nichts. Zumal ich ja auch nicht wußte, woran sich die App eigentlich orientiert. Ich habe dann gegoogelt und dabei kam ich auf "apktools", womit man bestehende Apps verändern können soll. Dazu gibt es eine Schrtitt für Schritt Anleitung. Ich konnte damit auch tatsächlich die App dekompilieren, was ich schon eine extrem erstaunliche Sache finde, und habe dann auch tatsächlich im Code gesehen, dass sie die Displaygröße des Gerätes abfragt und danach entscheidet, ob sie in den Tablet Modus geht. Da ich selber beruflich Softwareprogrammierer für Gerätesoftware bin (nur ganz bescheiden in der Sprache C, kein Studium), habe ich mich da zurechtgefunden. Man bräuchte an sich nur ein Bit ändern, also den Return-Wert von 1 auf 0 in der Abfrage "IsTablet". Nach dieser Änderung kann man wieder mit apktool eine APK generieren, aber die bekomme ich nicht lauffähig, wie oben beschrieben. Somit ging es mir eigentlich nur um obige Frage, aber ihr wollt ja alles ganz genau wissen.
 
swa00

swa00

Moderator
Teammitglied
@Andi91

Ich kann deine Situation sehr gut nachvollziehen.

Für meinen Schwiegervater, der auch sehr stark Sehbehindert ist, habe ich eine eigene App entwickelt, damit er die Tageszeitung in elektronischer Form auf einem Tablet lesen kann. Eine normale Printausgabe kann er nicht mehr (oder nur mühsam mit Lupe) lesen. ZoomFaktor und Kontrast, wie er sie benötigt, stellen Standardapps leider nicht zur Verfügung.

Dennoch muss an dieser Stelle festgehalten werden - und das müsstest du ja selbst wissen - dass die Veränderung eines fremden Werkes nicht Rechtens ist. (Mental Property)
Jegliche Änderung an einer APK unterliegt dem Urheberschutzgesetz des Verfassers und benötigt die schriftliche Genehmigung des Erstellers.
Aus diesem Grunde "zieren" wir uns auch ein wenig, hier in einem öffentlichen Bereich jegliche Unterstützung zu leisten, die gegen diese Richtlinie verstößt.

Man bräuchte an sich nur ein Bit ändern, also den Return-Wert von 1 auf 0 in der Abfrage "IsTablet".
Im Grunde genommen richtig.

Du versuchst allerdings - bezogen auf deine C-Kenntnisse - eine kompilierte binary ( bin/exe) an einem Punkt zu ändern , weist aber nicht wo und was.

Woher möchtest du denn wissen , dass der Entwickler dies nicht an verschiedenen Stellen im Source macht ?
Oder hat er nur eine übergeordnete SingleTon-Klasse aus der einmal nur das Flag ausliest ?
Verwendet er gar eine externe Bibliothek dazu , deren Source er auch nicht kennt ?
Was ist mit den Resourcen eines Layouts, die in diesem Moment nicht bedient, aber definiert sind ?
Die App stürzt dir sofort ab , weil keine Instanzen zugordnet werden können , da ein "falsches" Layout vorgegaukelt wird.

Was ich damit sagen möchte : Das Flag alleine nutzt dir nichts .
Selbst ich könnte das nicht tun, und ich verdiene mittlerweile mein Brot mit Apps - behaupte also recht frech, dass ich darin "fit" bin.

C ist etwas ganz Anderes ( und ich entwickle hauptberuflich auch in C seit Jahrzehnten ) denn ein UI-Aufbau in einer App läuft in einem übergeordneten Thread - unabhängig von den Funktionsthreads (z.b. Datenbank)

Hast du denn schon einmal den Entwickler angeschrieben, ob er dir nicht den Source zur verfügung stellt , wenn er die App eh schon aus dem Store genommen hat ?
Dann wäre es für Dich weit einfacher , Diesen (legal) in AndroidStudio zu verwenden und nach Herzenslust deine Änderungen vorzunehmen .
 
Zuletzt bearbeitet:
A

Andi91

Neues Mitglied
Dem Entwickler habe ich eine EMail geschrieben.
Mir war nicht so ganz bewußt, dass das eine Urheberrechtsverletzung gewesen wäre, weil die Änderung ja nur rein für den privaten Gebrauch gewesen wäre und ich die App damals im Playstore gekauft hatte. Wenn ich an einem gekauften Radio etwas umlöte, ist das ja auch eine Veränderung eines fremden Werkes.
Wie ist das dann z.B., wenn jemand ein Foto aus dem Internet mit Photoshop für eine Geburtstagsparty verändert?
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
Wie ist das dann z.B., wenn jemand ein Foto aus dem Internet mit Photoshop für eine Geburtstagsparty verändert?
Jedes Foto, Gemälde, Bild, Song etc. aus dem Internet ist erst einmal urheberrechtlich geschützt und Eigentum des Urhebers.
Er entscheidet über die Nutzung seines Werkes (Siehe auch weiter unten bei der App)

Auch die Geburtstagsparty stellt eine Veröffentlichung (wie das Internet) dar und ist somit für die Nutzung genehmigungspflichtig.

Du dürfest selbst auf der Party einen Song nicht ohne GEMA - Abgabe abspielen, wenn einer der Personen nicht in einem persönlichen Verhältnis zu dir steht und man deine Party besuchen könnte. (z.b. "Heute freies Grillfest für jeden bei mir am Pool")
Auch wenn du die CD vorher erworben hast - Das Anhören des Songs ist nur für den kleinen privaten Zweck erlaubt.

Wenn ich an einem gekauften Radio etwas umlöte, ist das ja auch eine Veränderung eines fremden Werkes.
Bei deinem Radio ist das etwas Anderes, dort erwirbst du mit dem Kauf sämtliche Teile und sie gehen in deinen Besitz über.
Du hast aber keine Vertriebsrechte des Grundwerkes (auch nicht nach dem Löten) u.U. verlierst du lediglich die Gewährleistung.

Bei der APK hast Du die App aber nicht erworben (auch wenn sie kostenfrei war) und sie geht auch nicht in dein Eigentum über.
Der Entwickler erteilt dir mit dem Download lediglich das Nutzungsrecht in der von ihm zur Verfügung gestellten Form.

Er entscheidet somit, wer die App haben darf, wer sie verändern darf und wo sie vertrieben werden kann.
Somit ist und bleibt die App/APK sein vollständiges Eigentum. (im Gegensatz zum Radio)
 
Zuletzt bearbeitet:
A

Andi91

Neues Mitglied
Ich denke ja auch schon seit längerem darüber nach, selber mal zu versuchen Apps zu programmieren. Aber das dazu Notwendige zu lernen wäre wahrscheinlich doch sehr aufwendig. Prinzipiell interessiert mich so was. Aber eine Vokabelapp mit den benötigten Datenbanken zu programmieren ist wahrscheinlich nicht der einfachste Einstieg. Ich hatte aber auch schon mal mit SQLite etwas rumprobiert, was Datenbanken angeht. Die Vokabeln selber kann man aus der App ja auf zweierlei Weise exportieren, als Excel-Datei oder im xml-Format. Dann könnte man sie mit der eigenen App wieder importieren, ggf, kann man sie ja auch in Excel bearbeiten und in andere Formate ausgeben. Mit Excel Makro-Programmierung habe ich auch etwas Erfahrung.
Ich hatte schon mal angefangen mit dem App Inventor eine Vokabel-App zu erstellen, aber da ist die Größe dar Tabellen und Datenbanken beschränkt. Eine andere Idee von mir war tatsächlich, ob man nicht jemanden finden kann, der einem die ideale Vokabel-App programmiert. Ansonsten gibt es im Inernet auch mehrere Anbieter von Baukstensystemen zum Zusammenklicken einer App, aber wahrscheinlich ist das nur für ganz einfache Apps geeignet.
Im Playstore habe ich tatsächlich bisher wirklich nichts gefunden, das meinen Ansprüchen entspricht. Alles zu komplex, zuviel Schnickschnack, zu kleine Darstellungen, zu viel Animation oder keine passenden Importmöglichkeiten. Bei manchen Apps sind es Kleinigkeiten, die total nerven. Bei einer App dreht sich die Karteikarte immer um bei der Abfrage und die ich dabei recht schnell bin, macht mich das schwindelig. Auch wäre es wichtig, die Vokabeln nach Bücher und weiter nach Kapitel sortiert in der Datenbank zu haben.
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
Andi,

Das Alles ist kein Hexenwerk. Wir haben auch hier im Entwicklerforum so einen Basis-Leitfaden veröffentlicht

Wie wäre es denn mal wenn du einfach mal AndroidStudio installierst und dich mal mit dem Layout auseinander setzt.
Wenn du dann die Grundzüge von Knöpfen und Listen durch hast , dann helfen wir auch gerne damit, noch die Datenbank zu integrieren.

Es fehlt grundsätzlich an Apps für sehbehindere Menschen - allerdings machen sie aus rein wirtschaftlichen Gründen keinen Sinn.
Solltest du dich aber darauf spezialisieren und das auch "nebenbei" machst , würden sich unzählige Nutzer freuen.
Und mit einem kleinen Werbebanner, werden auch deine Kosten gedeckt , oder es reicht für den Kurzurlaub.

Meine oben genannte App für den Schwiegervater kann ich nicht veröffentlichen , da sie rein auf einen lokalen Verlag mit einer Menge technischer Hürden konzipiert ist.
 
Zuletzt bearbeitet:
S

starbright

Stammgast
Andi91 schrieb:
Ich bin nach untenstehender Anleitung vorgegangen und habe folgendes in die Eingabeaufforderung eingegeben:
keytool -genkey -v -keystore my.keystore -alias cert -keyalg RSA -keysize 2048 -validity 10000
Keystore hinzuzufügen. Die Gültigkeitsdauer der Schlüssel wird über den Parameter -validity in Tagen angegeben.
Ich weiß nicht weiter. Ich möchte eine Google Stub signieren:

GitHub - SolidHal/Gapp-Package-Spoof: App faking only the absolute necessary Apis to use AA without Google's App

In der Anleitung steht:
apksigner sign --key key.pk8 --cert key.x509.pem app/build/outputs/apk/release/app-release-unsigned.apk

Aber wo kommt der key.pk8 her? Und wieso gibt man nicht den Ort des Keystores an? Kann mir jemand die Zusammenhänge erklären?
Ich hab das SDK (ohne Studio oder IDE) installiert und konnte die apk auch erzeugen. Aber das signieren bekomme ich nicht hin.
 
swa00

swa00

Moderator
Teammitglied
@starbright

Du bist auf dem falschen Wege - die Beschreibung ist drei Jahre alt.

Schlichtweg AndroidStudio installieren , Projekt einbinden , Gradle anpassen und compilieren.
Die Signatur mit dem Tool "Generate Signed Bundle/Apk" erstellen.
 
Zuletzt bearbeitet:
S

starbright

Stammgast
@swa00
Mit alt meinst du die Beschreibung zum Key-Erzeugen?
Du wirst das so leichtweg hin, Studio installieren, Projekt einbinden - und welche Anpassung von Gradle?
Ich bin zwar willens Aufwand zu treiben und mich einzulesen, aber auch kein Expert (und werd es wohl auch nicht mehr).
Hast du da zufällig noch eine etwas ausführlichere Beschreibung/Link?

Ich bin da mit einiger Mühe jetzt kurz vor dem Ziel, da schmeißt man ungern noch mal alles über Board. Wenn muss dann muss, aber wenn es noch einen anderen Weg gibt...
 
swa00

swa00

Moderator
Teammitglied
Kleiner Hinweis vorab :
Selten sind reine Sourcen von Github Projekten 1:1 Out of the Box verwendbar - gerade bei Android.
Sie dienen i.d.R. als Richtlinie, wie man was umsetzen könnte.

Im Prinzip ändert sich täglich Etwas, da kommt man leider nicht drum herum, sich dem anzupassen.


Mit alt meinst du die Beschreibung zum Key-Erzeugen?
Richtig, so wird leider kein Key mehr erzeugt, der Gültigkeit haben könnte.

und welche Anpassung von Gradle?
Im Gradle wird die Zielplattform angegeben, wie auch die Bibliotheken, die zu verwenden sind - diese sind wichtig und sollten immer auf dem aktuellen Stand sein. Die Zielplattform ist von deinem Endgerät abhängig (Das wissen wir nicht)
Meet Google Play's target API level requirement | Android Developers

Im Quer-Überblick habe ich gesehen, dass die Bibliotheken (z.b. Kotlin) auch "deprecated" sind - da sollten Anpassungen erfolgen.
Und da Android Studio Dich darauf hinweist und auch die entsprechenden Abhängigkeiten nachlädt, macht die Installation schon Einiges an Sinn.

Beim Erstellen der APK kannst du dann auch deine gewünschte Signatur-Datei (jks) anlegen .
 
Zuletzt bearbeitet:
S

starbright

Stammgast
@swa00
Danke für die Antwort, ich hatte mir das etwas leichter vorgestellt, zumal apps ja üblicherweise auf mehreren Android Generationen laufen (Ich hab grad 12, bzw LOS19.1).
Ich glaube ich muss einsehen, dass ich hier an meine Grenzen stoße und die normale GAPP installieren und diese dann per Firewall / Xprivacy "einsperren". Den Stub (für Android Auto) fand ich charmant für ein schlankes System, aber nach bereits einigen Stunden an Arbeit gebe ich auf ... vielleicht ein andermal. Zumal ich bei kleinsten weiteren Problemen ebenfalls wieder augeschmissen wäre.
 
Zuletzt bearbeitet: