Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
#1

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

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

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

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

По с/с++ сильно не помогу, но почитайте про основы NDK. Там в статьях есть примеры подключения вашей либы к проекту и работу с ней. Может это поможет: http://habrahabr.ru/company/redmadrobot/blog/265117/
Там вроде тоже основы подключения увидел...
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 11:44  [ТС]     Вызов системной JNI-функции из своего приложения #3
на первом скриншоте кусок из декомпилированного services.jar, на втором скрине часть дизассемблинга libandroid_servers.so, в которой происходит регистрация JNI функций для java.
сами функции(на си которые), как я понял, просто открывают /dev/OLED и пишут в него массив, попробую копать в эту сторону еще
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 13:15  [ТС]     Вызов системной JNI-функции из своего приложения #4
пробовал писать в "/dev/OLED" - не вышло, нет доступа.
через System.loadLibrary("android_servers") тоже не получается обращаться к native функциям, ведь они же регистрируются только для класса "com/android/server/OledService"?
Миниатюры
Вызов системной JNI-функции из своего приложения  
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
28.08.2015, 13:31  [ТС]     Вызов системной JNI-функции из своего приложения #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 функции
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
29.08.2015, 00:25     Вызов системной JNI-функции из своего приложения #6
Цитата Сообщение от XTracer Посмотреть сообщение
на втором скрине часть дизассемблинга libandroid_servers.so
Извини что не по теме, но каким инструментом подобное делается?

Не по теме:

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

Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
29.08.2015, 08:15     Вызов системной JNI-функции из своего приложения #7
XTracer, код выкладывается на форум в виде текста, оформленного соответствующим тэгом, а не в виде картинок
XTracer
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 5
29.08.2015, 10:08  [ТС]     Вызов системной JNI-функции из своего приложения #8
Tester64, это IDA PRO
Ev[G]eN, как мне изменить скрины на код? кнопки Правка уже нет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2015, 16:00     Вызов системной JNI-функции из своего приложения
Еще ссылки по теме:

Вызов метода при каждом открытии приложения Android
Запись logcat в файл на SD-card из своего приложения Android
Как сохранить данные своего приложения через аккаунт Google? Android
Вызов js функции в webView Android
Android Как позвонить из своего приложения?

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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
29.08.2015, 16:00     Вызов системной JNI-функции из своего приложения #9
XTracer, вставляйте код в новое сообщение, я перенесу. на будущее имейте ввиду
Yandex
Объявления
29.08.2015, 16:00     Вызов системной JNI-функции из своего приложения
Ответ Создать тему
Опции темы

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