Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Eindeutige Erkennung von einem Android Gerät zwecks Lizenz (https://www.delphipraxis.net/193091-eindeutige-erkennung-von-einem-android-geraet-zwecks-lizenz.html)

stalkingwolf 19. Jun 2017 16:13

Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Hallo zusammen,

ich stehe gerade davor eine Art Lizenzverwaltung für ein Android APP zu programmieren und überlege wie ich das Gerät eindeutig identifizieren kann.

MAC Adresse oder IMEI. Wobei ich mir bei letzterer nicht sicher bin ob es diese gibt wenn das Tablet z.b keine SIM Karte hat und nur im WLAN genutzt wird.

Oder hat jemand noch eine anderen guten Ansatz das Gerät eindeutig zu identifizieren?

Gruß
Sven

himitsu 19. Jun 2017 16:22

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Bei Google suchenAndroid ID

Android Device-ID (Geräte-ID))
Google Werbe-ID
IMEI
...

Die Werbe-ID wird bei der Androidinstallation/-Einrichtung generiert oder nach dem Zurücksetzen, bzw. man kann sie mit Tricks auch so neu generieren lassen, aber sie gibt es immer.

stalkingwolf 19. Jun 2017 16:32

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Ok.

IMEI fällt raus. Gerade danach gesucht diese gibt es bei Geräten ohne SIM nicht.

mensch72 19. Jun 2017 16:49

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
anstatt der "GoogleWerbeID" als "GeräteID" würde ich als "APP-InstallationsID" bei Lizenz- und Sicherheitssachen den "GooglePushDeviceToken" vorschlagen, weil...

Der wird pro APP Installation von Google vergeben und dient dem OS seitigen Empfang von Pushnachrichten, die dann bei der App ankommen, bzw diese starten.
Da dies sowohl unter Apple IOS als auch Google Android funktioniert, verwenden wir diesen (bzw einen Hash ala SHA??? für alles was wir wirklich pro Geräteinstallation absichern wollen als Sicherheitsbasis. (Vorher hatten wir irgend eine UUID vom Filesystemeintrag des privaten APP Verzeichnisses, war aber gegen Android Systeme mit RootRechten nicht sicher genug)

Wir realisieren neban Lizenzsachen so auch eine EndToEnd Verschlüsselung, weil der PushDeviceToken nie von uns übertragen wird, nur die installierte App und der GoogleServer haben den und unser "App-BackendServer" holt/bekommt den nicht von den App sondern vom GoogleServer... daher ist jegliche Direktübertragung zw. unsrere App und unserem AppBackendserver sicherheitstechnisch "clean", weil für andere nicht zu decodieren und so auch bei Kopie wertlos.

Wir verwenden von Google übrigens jetzt "Firebase Cloud Messaging (FCM)" als die neue Version des vorherigen "Google-GCM", und wir lösen dies mit einer einfachen "DelphiPro-Lizenz" direkt programmiert ohne einen zusätzlichen "Highlevel"-PushServiceProvider ala EMS,...

Rollo62 19. Jun 2017 18:55

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Android
https://community.embarcadero.com/bl...ifierforvendor

iOS
https://support.google.com/adxbuyer/.../3221407?hl=en
http://www.opsactive.com/apple-quiet...-tracking-you/

Rollo

himitsu 20. Jun 2017 00:22

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Was wird aus der APP-InstallationsID, wenn man ein neues Handy hat, bzw. nach einem Crash alles zurückgesetzt wurde?
Oder einfach nur die App löscht und neu installiert?

OK, die Google Werbe-ID wird dabei ja auch neu generiert, wenn sich das Handy ändert.


Am Ende kommt es drauf an, ob man nur die Appinstalation erkennen will, aber eine spätere Neuinstallation nicht als den "Selben" erkennen will.
Es wird eh schwer einen "User" eindeutig zu identifizieren.

Man könnte eventuell auch über Google Games oder z.B. Facebook gehen und in diesen Konten eine "Spieler ID" nutzen.

mensch72 20. Jun 2017 01:10

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Ich will wenn es sich vermeiden lässt zunächst gar keine Nutzer identifizieren, wenn nur die APP installiert und genutzt wird.
Es reicht anfangs wenn sie für ein Gerät(WerbeID) bezahlt ist, bzw. meist bei internen Services&Daten für eine Installation(PushTokenID).

Wer seine APP löscht und neu installiert oder gar das Gerät "plattmacht" startet(und zahlt) neu ODER kann sich wenn er will melden und mit seiner PayPal-TransactionID idendifizieren, wenn er noch nicht registriert war. Ohne Registrierung oder PayPal-TransactionID... Pech.
Dann wird im BackendServer seine GeräteID und/oder seine APPID aktualisiert(die vorherige ersetzt), Doppelnutzung so automatisch ausgeschlossen, ausser es sind nach freiwilliger Indentifikation mehrere Geräte/APPs/Installationen auf einen Anwender bei uns registriert (z.B. oft Handy+Tablett).

Google oder Facebook Konto zur Identifikation... ne, erstens habe ich sowas selbst nicht und zweitens lieber was eigenes was sich wegen geringer Verbreitung kaum kommerziell lohnt zu knacken:)

=> es soll&muss einfach sein die App zu installieren und zu starten
=> daher zunächst auch eine Woche Grundnutzung OHNE den Aufwand mit womöglich 2 Wege Registrierung mit Bestätigungslink per Mail und oder SMS (ich habe auch nicht immer&überall mein E-Mailkonto im Zugriff, weil ich das z.B. absichtlich nicht auf meinem Handy habe)
=> wenn jemand pro Woche 1x sein Gerät plattmacht/tauscht kann er bei uns "ewig" die Grundfunktionen ohne Registrierung und/oder Zahlung nutzen

bra 20. Jun 2017 09:11

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Warum nicht den gängigen und benutzerfreundlicheren Weg gehen mit zwei Apps im Appstore: eine kostenlose Version und eine kostenpflichtige?
Ich würde mich bedanken, wenn ich bei einem neuen Gerät so einen Aufwand betreiben müsste, um eine App wieder zum Laufen zu bekommen :roll:

himitsu 20. Jun 2017 10:34

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Das ist aber kein Schutz, nur weil man was im Appstore gekauft hat, bzw. vor dem Download dafür bezahlen musste.

Gegen eine Kopie der APK und einer manuellen Installation schützt das nicht.

Kopie: Gut, ich hatte mal im Samsung-Appstore (aber technisch kein Unterschied zum Google Play Store) was gekauft, weil ich genervt war, diesen Appstore später gelöscht, da er ständig die von mit deaktivierte Bloadware reaktivierte.
Nach einem Reset des SAMSUNG und auch im neuen ASUS ... überall konnte ich problemlos mein Backup (die APK) wieder einspielen und nutzen.

bra 20. Jun 2017 10:49

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Nur, wer betreibt diesen Aufwand? Der normale Anwender ganz sicher nicht. Kommt natürlich auch auf die App an.

stalkingwolf 20. Jun 2017 10:51

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Moin,

ganz so kompliziert wollen wir es nicht :-)

Wir erstellen Branchensoftware und kennen unsere Firmen und haben guten Kontakt.
Es geht nur um das erkennen wie viele Geräte die APP benutzen und daher muss ich das Gerät eindeutig identifizieren können.
D.h wir verkaufen 10 Lizenzen und wenn der Kunde 15 benutzt sagen wir im "Pass auf du 10 gekauft, du nutzt 15 also muss du 5 Lizenzen nachkaufen".

Ich denke die Werbe ID klingt gut. So oft werden die Geräte nicht zurückgesetzt. IOS ist erstmal kein Thema.

himitsu 20. Jun 2017 11:01

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Zitat:

Zitat von bra (Beitrag 1374962)
Nur, wer betreibt diesen Aufwand? Der normale Anwender ganz sicher nicht. Kommt natürlich auch auf die App an.

Musst du nicht. Es gibt mehr als genug webseiten, wo man sich die APKs auch direkt runterladen kann. (teilweise auch welche, wofür man eigentlich bezahlen müsste)

Ich nutze das manchmal sogar selber, da ich dort auch ältere Versionen einer App bekomme, was mir der Playstore leider nicht bietet.
OK, ich könnte auch regelmäßig vor einem Update Backups machen, aber ich bin faul und hab das Autoupdate im PlayStore aktiv. Wenn es mal Probleme mit einer neuen App-Version gibt, dann hole ich mir halt eine ältere Version aus einem der APK-Mirrors.

mensch72 20. Jun 2017 19:35

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Wenn jemand fragt, was es für Wege der Lizenz Prüfung/Abrechnung gibt, lässt naheliegend schließen das er dies nicht per Standard über den Bezahlweg des App/Play-Store des OS-Anbieters machen möchte.

Ich mag kostenlose und frei installierbars APPs. Wer "mehr" will zahlt aber nicht für die APP, sondern für Livefunktionen und Inhalte. Da weder Apple noch Google dafür eigene Services bieten, wird das Verfahren tolleriert. Die sperren ja auch ihre Browser nicht, weil jemand gegen direkte Bezahlung "Bild.de" dauerhaft online liest.

Ich finde kostenlose Apps mit InAppPayment genauso doof wie (zusätzliche) kostenpflichtige APPs, weil man die nicht ohne hinterlegte Kreditkarte/Zahlungsmethode installieren und probieren kann. Eventuell liegt es am Alter, aber die "üblichen" 2 APPs im Store ala "Free/Pro-Trail" und "FullPro" mag ich selbst eben auch nicht.

=> Klar immer eine Frage der APP und des Nutzerkreises.
Wenn es zeitlich passt stelle ich mal versuchsweise eine "UltimateVersion" einer App zu 499€ in den Store. Einfach mal um zu sehen wieviele Käufer("Tester") sich das "zufällig" kaufen und installieren. Da es wohl nur sehr wenige sein werden, kann ich dann da auch im Backend tracken, ob und wie sich die Nutzung des APK "verteilt". Eine Xte 4,99€ App für irgenmdwas interessiert niemanden mehr, aber ne 499€ APP erweckt zumindest Neugier bei "speziellen" Nutzern:)

mjustin 21. Jun 2017 15:17

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Zitat:

Zitat von mensch72 (Beitrag 1375008)
Wenn jemand fragt, was es für Wege der Lizenz Prüfung/Abrechnung gibt, lässt naheliegend schließen das er dies nicht per Standard über den Bezahlweg des App/Play-Store des OS-Anbieters machen möchte.

Man kann auch folgern, dass der Entwickler sich gerne mit den internationalen Steuerregelungen beschäftigt, um die Steuer an die jeweiligen Länder, in denen die App verkauft wird, abzuführen :)

Bei den App Stores übernimmt die Versteuerung der Betreiber. Gerade für kleine Entwickler wird es so erst ermöglicht, weltweit zu verkaufen.

himitsu 21. Jun 2017 15:33

AW: Eindeutige Erkennung von einem Android Gerät zwecks Lizenz
 
Zitat:

Zitat von mjustin (Beitrag 1375086)
Man kann auch folgern, dass der Entwickler sich gerne mit den internationalen Steuerregelungen beschäftigt, um die Steuer an die jeweiligen Länder, in denen die App verkauft wird, abzuführen :)

Also am Ende diese App nicht öffentlich im Appstore verteilen, sondern als APK z.B. über eige eigene Webseite/Mail/... bzw. über einen privaten Channel im Google Appstore.
https://incapptic.com/blog/enterpris...-zu-verteilen/

Verkaufst dann deine App nur da wo es dir möglich ist und dann installiert der.


Bzw. Payment nicht über Google (z.B. nur an Deutsche) und dann diese Funktion für diese Kundeninstallation irgendwie freischalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz