Открытие последовательного порта с использованием предварительно созданной библиотеки .soAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Открытие последовательного порта с использованием предварительно созданной библиотеки .so

Сообщение Anonymous »

Я поискал в StackOverflow и обнаружил несколько связанных проблем, но ни одна из них не отвечает моим прямым проблемам.
Я хочу открыть последовательный порт на определенном устройстве Android через приложение Android.
Устройство содержало оригинальный APK с некоторыми функциями последовательного порта.
Я выполнил реверс-инжиниринг apk и нашел правильный файл .so в system/lib64 на устройстве, чтобы я знал, как старое приложение использует этот проект.
Что я знаю:
  • Последовательный порт использует Uart для связи.
  • Файл .so используется в другом приложении, поэтому имеет правильную функциональность.
  • Реверс-инжиниринг, позвольте мне см. основные функциональные возможности и названия, используемые для функций.
  • Устройство работает под управлением Android 10.
  • Оно работает на процессоре Arm64-v8a.
  • Старая библиотека .so добавлена ​​в папку jniLibs, найдена и загружена.
У меня нет исходного файла .c и Файл .h, используемый при настройке jni для библиотеки.
У меня нет документации ни на последовательное устройство, ни на исходное устройство, поскольку производитель ее не предоставил, поэтому создаю новое нативное устройство. Библиотека может быть сложной.
Метод обратной разработки файлов liboldnativelibrary.so заключается в следующем: (проект задания, который я вставил в себя из gidhra)

Код: Выделить всё

jobject Java_com_the_old_serialportApp_SerialPort_open
(JNIEnv *penv,undefined8 param_2,jstring inputString,speed_t baudRate,
uint hiddenParam)
Я написал этот код

Код: Выделить всё

package com.myself.serialporttesting

companion object {
init {
try {
Log.i("Library", "Loading library")
System.loadLibrary("oldnativelibrary")
Log.i("Library", "Library loaded successfully")
} catch (e: UnsatisfiedLinkError) {
Log.i("Library", "Library not loaded")
}
}

private external fun open(
fileName: String,
baudRate: Int,
hiddenValue:  Int
): FileDescriptor
}
Я получаю сообщение об ошибке:
Не найдена реализация для java.io.FileDescriptor com.hfad.serialporttesting.SerialPort$Companion.open(java.lang.String, int, int)
Я считаю, что это проблема с именованием, поскольку мой пакет называется как-то по-другому. Так ли это и можно ли это обойти?

Подробнее здесь: https://stackoverflow.com/questions/781 ... so-library
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»