2017-11-14 6 views
0

Jungs. Ich möchte Funktionsnamen ändern, die ich aus der statischen Lib importiere, wie ProGuard es mit Java-Methoden und -Klassen macht. Ich denke, es kann viel schwieriger machen. Zum Beispiel, wenn ich eine Datei mit sha1 überprüfe, möchte ich nicht, dass der Umschalter weiß, was genau diese Funktion ist. Er kann stattdessen etwas func0024 sehen.Wie Funktionen in android ndk-Bibliothek umbenennen

Ist es möglich, dies mit Standard-Tools in Android cmake zu machen? Oder, wenn es nicht welche Werkzeuge sind, können Sie für diese Aufgabe beraten?

+0

Sie bauen statischen Bibliotheken, die Sie in einer gemeinsam genutzten Bibliothek verknüpfen, und dann laden Sie diese gemeinsam genutzte Bibliothek in Ihrem App ..? Die Namen der Funktionen in Ihren statischen Bibliotheken sollten in der gemeinsam genutzten Bibliothek bereits gelöscht sein, es sei denn, Sie versenden die nicht entfernte Bibliothek aus irgendeinem Grund mit Ihrer App. – Michael

+0

Ich überprüfe binäre von apk mit readelf und es zeigt mir unverändert openssl Funktionsnamen. –

+0

Versuchen Sie '-visibility = hidden' zu' LOCAL_CFLAGS' und '-WL, - exclude-libs, ALL' zu' LOCAL_LDFLAGS' hinzuzufügen. Und stellen Sie sicher, dass Sie "readelf" auf der abgestreiften .so-Datei ausführen (d. H. Nicht in "obj/local"). – Michael

Antwort

0

Nach Michaels Antwort sollten Sie diese Zeile in CMakeLists.txt Datei hinzufügen

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wl,--exclude-libs,ALL")

+0

Weitere Informationen finden Sie unter https://stackoverflow.com/questions/2222162/how-to-apply-gcc-fvisibility-option-to-symbols-in-static-libraries. – Michael

Verwandte Themen