Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   SSL und Android App auf Android 6.0 Device (https://www.delphipraxis.net/191553-ssl-und-android-app-auf-android-6-0-device.html)

sko1 27. Jan 2017 10:07

SSL und Android App auf Android 6.0 Device
 
Hallo,

seit 2 Tagen google ich und probiere mir die Finger wund, ich komme nicht weiter:

Eine App von mir, die auf Android Geräten bis 5.01 funktioniert, macht Probleme auf Android >=6.0, es kann keine SSL-Verbindung aufgebaut werden.
Dass Google da die Bibliotheken geändert hat weiß ich, ich habe die so-Files der Version 1.02g und diese auch in der RAD-Studio Bereitstellung entsprechend nach .\assets\internal\ kopieren lassen.
Ein Test im Programm zeigt auch dass die Dateien vorhanden sind.
Aber wenn ich dann in einem Testprojekt die SSL-Version anzeigen lasse, ist die weiterhin 1.01k!

Hat jemand bitte einen Tip?

Die DPR-Datei:
Code:
program Test_SSL_V6;

uses
  System.StartUpCopy,
System.IoUtils,
  FMX.Forms,
  IdSSLOpenSSLHeaders,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
{$IFDEF ANDROID}
  IdOpenSSLSetLibPath(TPath.GetDocumentsPath);
{$ENDIF}
  Application.CreateForm(TForm1, Form1);
  Application.Run;

end.
und das Programm :

Code:
unit Unit1;

interface

uses
  System.StartUpCopy,
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdSSLOpenSSL,
  System.ioutils, IdSSLOpenSSLHeaders, FMX.StdCtrls, FMX.Controls.Presentation;

type
  TForm1 = class(TForm)
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

function StartupFileExists(const AFilename: string): Boolean;
begin
  Result := TFile.Exists(TPath.Combine(TPath.GetDocumentsPath, AFilename));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(OpenSSLVersion);
end;

procedure TForm1.FormShow(Sender: TObject);
var
fn : string;
begin
  if not StartupFileExists('libssl.so') then
    showmessage('libssl.so in '+  TPath.GetDocumentsPath + ' nicht gefunden');
  fn := TPath.GetDocumentsPath;
  IdOpenSSLSetLibPath(fn); // no effect
  Showmessage(OpenSSLVersion); // opensll 1.0.1k-fips 8 Jan 2015
  Showmessage(WhichFailedToLoad); // empty

end;

end.
Danke
Ciao
Stefan

bra 27. Jan 2017 10:44

AW: SSL und Android App auf Android 6.0 Device
 
Probier es mal damit

Delphi-Quellcode:
IdOpenSSLSetLibPath(TPath.GetLibraryPath);

sko1 27. Jan 2017 10:59

AW: SSL und Android App auf Android 6.0 Device
 
Danke, hatte mich schon so auf eine Lösung gefreut (ich träume schon von dem Mist :-)

aber leider das Gleiche :

"opensll 1.0.1k-fips 8 Jan 2015"

Die kopierten Dateien sind vorhanden, und

Showmessage(WhichFailedToLoad);

gibt eine leere Meldung aus!

Ciao
Stefan

bra 27. Jan 2017 11:29

AW: SSL und Android App auf Android 6.0 Device
 
Was ist das denn für ein Gerät? Nicht zufällig eins mit x86-Prozessor? Dort funktioniert nämlich das Laden der SO-Dateien nicht - hat bei uns zumindest nicht funktioniert.

sko1 27. Jan 2017 12:13

AW: SSL und Android App auf Android 6.0 Device
 
Nein, ARM-Prozessor (Galaxy S4)...

Inzwischen bin ich aber schlauer!
Ich habe das APK mal jemandem mit Android 6 gegeben, und siehe da, dort wird 1.02g angezeigt!

Warum zum Teufel mein Gerät immer seine eigene Version verwendet, keine Ahnung!
Das macht das testen natürlich nicht einfacher, wenn man kein 6er Device zur Verfügung hat!
Ich hatte erwartet dass alle Geräte die auf diesem Wege zur Verfügung gestellten .SO-Dateien verwenden!

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.

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