Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
1

Вызов системной JNI-функции из своего приложения

27.08.2015, 21:44. Просмотров 403. Ответов 8
Метки нет (Все метки)

Имеется Highscreen ICE 2, у которого есть второй дисплей на задней панели(OLED).
Хочу получить доступ к рисованию на этом экране.
В результате декомпиляции стоковой прошивки выяснил, что для рисования система использует службу OledService, в которой есть только прототипы нужных функций на java, а сами функции объявлены через JNI на си в system\lib\libandroid_servers.so.
Названия функций:
  • refreshScreen_native
  • setMode_native
  • open_native
  • close_native
Как можно вызвать эти функции из своего приложения?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2015, 21:44
Ответы с готовыми решениями:

Вызов permission своего приложения
Здравствуйте. Подскажите вот по этому коду Intent appSettingsIntent = new...

Qt и JNI вызов java класса
Всем привет, недавно делал Android приложение, использовал Jni. Вроде было не сильно сложно. Сейчас...

Qt android JNI - Вызов галереи
Доброго дня ! делаю вызов галереи: QAndroidJniObject action = QAndroidJniObject::fromString(...

Вызов C++ dll без использования JNI
Можно ли вызывать функции dll которые написаны "в стиле" С (без JNI): extern "C"...

Вызов функции из COM+ приложения
В базе хранится (к примеру) BA_BIZLG.clsLogic.CountRests, где BA_BIZLG - имя COM+ компонента,...

8
Tester64
397 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
28.08.2015, 01:44 2
Цитата Сообщение от XTracer Посмотреть сообщение
В результате декомпиляции стоковой прошивки выяснил
Я не понял, вы декомпилировали программу на С/С++? (уж очень вторая картинка на дезасемблер похожа - для меня это важно). Или это декомпил явы?

По с/с++ сильно не помогу, но почитайте про основы NDK. Там в статьях есть примеры подключения вашей либы к проекту и работу с ней. Может это поможет: http://habrahabr.ru/company/redmadrobot/blog/265117/
Там вроде тоже основы подключения увидел...
0
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 11:44  [ТС] 3
на первом скриншоте кусок из декомпилированного services.jar, на втором скрине часть дизассемблинга libandroid_servers.so, в которой происходит регистрация JNI функций для java.
сами функции(на си которые), как я понял, просто открывают /dev/OLED и пишут в него массив, попробую копать в эту сторону еще
0
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 13:15  [ТС] 4
пробовал писать в "/dev/OLED" - не вышло, нет доступа.
через System.loadLibrary("android_servers") тоже не получается обращаться к native функциям, ведь они же регистрируются только для класса "com/android/server/OledService"?
0
Миниатюры
Вызов системной JNI-функции из своего приложения  
28.08.2015, 13:15
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 13:31  [ТС] 5
Регистрация происходит примерно таким кодом(получил код на основе другой службы у которой есть исходный код на c++):
C++
1
2
3
4
int register_android_server_OledService(JNIEnv *env) {
    return jniRegisterNativeMethods(env, "com/android/server/OledService",
            method_table, NELEM(method_table));
}
в method_table нужные 4 функции
0
Tester64
397 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
29.08.2015, 00:25 6
Цитата Сообщение от XTracer Посмотреть сообщение
на втором скрине часть дизассемблинга libandroid_servers.so
Извини что не по теме, но каким инструментом подобное делается?

Не по теме:

Пытаюсь лицензионную защиту своей программы через ключи встроить на уровне С++ и не хотелось бы чтобы получасовое изучение кодов через дизасемблер позволило бы написать свой генератор ключей. Хочу просмотреть свою-же программу через дизасемблер

0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5123 / 1561 / 951
Регистрация: 23.01.2011
Сообщений: 3,189
Завершенные тесты: 1
29.08.2015, 08:15 7
XTracer, код выкладывается на форум в виде текста, оформленного соответствующим тэгом, а не в виде картинок
0
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
29.08.2015, 10:08  [ТС] 8
Tester64, это IDA PRO
Ev[G]eN, как мне изменить скрины на код? кнопки Правка уже нет
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5123 / 1561 / 951
Регистрация: 23.01.2011
Сообщений: 3,189
Завершенные тесты: 1
29.08.2015, 16:00 9
XTracer, вставляйте код в новое сообщение, я перенесу. на будущее имейте ввиду
0
29.08.2015, 16:00
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2015, 16:00

Вызов функции после создания окна приложения
Здравствуйте, есть программа в которой создаються виджеты (QPlaintTextEdit), после их создания,...

Вызов функции при закрытии консольного приложения
Пытаюсь реализовать вызов функции при закрытии консольного приложения(будь то закрытие пользователя...

Запуск приложения Java через Delphi JNI
Здравствуйте уважаемые программисты. Не могли бы вы мне показать как можно(пример) запустить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru