Я пытаюсь использовать ld_preload для динамической загрузки файла .so во время запуска приложения. Я построил нативную библиотеку с помощью Android Studio (создание нативного проекта, а затем извлечение файла .so из APK).
Я выполнил шаги (https: // cedricvb.be/post/interpting-android-native-library-calls/) для настройки SetProp, но когда я запустил приложение, белый экран появляется и, кажется, вешает, но мой код конструктора не вызван (распечатайте строку на Logcat) .
Я изменил простой код конструктора из (https://www.gamedev.net/forums/topic/21 ... les-entry- point /).
#include
#include
#include
#include
#include
#include
#include
void simpleConstructor() __attribute__((constructor));
void simpleConstructor()
{
__android_log_print(ANDROID_LOG_DEBUG,"constructor","constructor_code");
}
< /code>
Я настроил переменную LD_PRELOAD как таковую < /p>
setprop wrap.com.x.y.z LD_PRELOAD=/data/local/tmp/libnative-lib.so
< /code>
и значение есть, когда я запускаю getProp. < /p>
Все, что я вижу в logcat, это записи, такие как < /p>
04-07 18:03:54.850 1659 6548 I ActivityManager: Force stopping com.x.y.z appid=10209 user=0: from pid 9076
04-07 18:03:54.953 1659 6548 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.x.y.z/.MainActivity} from uid 2000
04-07 18:03:54.991 9083 9083 I com.x.y.z: Late-enabling -Xcheck:jni
04-07 18:03:55.093 1659 1680 I ActivityManager: Start proc 9083:com.x.y.z/u0a209 for activity com.x.y.z/.MainActivity
04-07 18:04:05.099 1659 1678 W ActivityManager: Process ProcessRecord{b809543 9083:com.x.y.z/u0a209} failed to attach
04-07 18:04:05.101 1659 1678 I ActivityManager: Killing 9083:com.x.y.z/u0a209 (adj -10000): start timeout
< /code>
оцените любой совет. < /p>
Подробнее здесь: https://stackoverflow.com/questions/610 ... in-android