[Разработка мобильных приложений, Реверс-инжиниринг] Декомпилируем приложение xiaomi сканер и забираем результат сканирования
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
У коллеги возникло предложение:
«Напиши мне за банку чипсов распознавалку штрих-кодов на андроид, чтобы просто в файлики результаты писать и время, брату надо»
В итоге оказалось не брату, да и не надо, и вообще банка чипсов это дорого
Из интереса пробежался по готовым решениям на js и android, и т.к. у меня смартфон xiaomi с готовым приложением сканером, подумал, почему бы не попробовать просто забирать результаты сканирования из него?
Ок, пробовал погуглить инфу об интентах или готовую инструкцию по получению данных из сканера, но тщетно.
Решено провести разведку манифеста приложения на наличие интентов.
- Находим и забираем APK с телефона.
adb shell
~:/pm list packages | grep scanner
~:/pm path com.xiaomi.scanner
exit
pull /system/priv-app/MiuiScanner/MiuiScanner.apk
- Декомпилируем apk с помощью онлайн сервиса.
- Исследуем манифест.
Находим первый попавшийся по смыслу экшн.
AndroidManifest.xml
SPL
- Создаем новый android проект и пишем вызов сканера.
val intent = Intent("miui.intent.action.scanbarcode")
startActivityForResult(intent, 1);
- Запускаем приложение, делаем вызов и…
запускается сканер и дает спокойно работать, но нужно получить результат, как? Видимо нужен корректный код запроса, или дополнительные данные в интенте. Анализируем декомпилированные исходники в части обработки интентов и попадается следующее.
ScanActivity.java
SPL
Судя по всему нужно добавить булево значение в интент.
- Ищем нужное имя ключа, которое лежит в EXTRA_INTENT_IS_BACKTO_THIRDAPP и находим isBackToThirdApp.
AppUtils.java
SPL
- Переписываем код вызова сканера.
val intent = Intent("miui.intent.action.scanbarcode")
intent.putExtra("isBackToThirdApp",true)
startActivityForResult(intent, 1);
- Забираем результат.
super.onActivityResult(requestCode, resultCode, data)
if (resultCode==Activity.RESULT_OK){
result.setText(data?.extras?.getString("result"))
}
- Короткое видео с примером работы приложения.
- Интерес удовлетворен, и теперь мы можем пользоваться результатами родного Xiaomi приложения и сосредоточиться на описании своей логики работы с результатами, поедая чипсы
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, PostgreSQL, Разработка мобильных приложений, Изучение языков] «В карантин нагрузка выросла в 5 раз, но мы были готовы». Как Lingualeo переехал на PostgreSQL с 23 млн юзеров
- [Разработка мобильных приложений, Разработка под Android, Google API, Монетизация мобильных приложений] Внедрение IMA SDK в Android-приложениях
- [Законодательство в IT, IT-компании] Смартфоны Huawei перестанут получать патчи безопасности и обновления для Android. У производителя закончилась лицензия
- [Разработка под Android] История про «боль» и как мы ее исправляем
- [Разработка под Android] Android Fragment Result Listener
- [Разработка мобильных приложений, Flutter] Анонс Flutter 1.20 (перевод)
- [Информационная безопасность, Реверс-инжиниринг] Руткиты на основе BIOS. Часть 2 (перевод)
- [Информационная безопасность, Гаджеты] В чипе Qualcomm Snapdragon нашли более 400 уязвимостей
- [Работа с видео, Разработка мобильных приложений] Как создавались ролики о приложении «ПоЗнакомым»: факты, задачи, тонкости + комментарий клиента
- [Смартфоны, Будущее здесь, IT-компании] Google утверждает, что создала самую большую сеть обнаружения землетрясений
Теги для поиска: #_razrabotka_mobilnyh_prilozhenij (Разработка мобильных приложений), #_reversinzhiniring (Реверс-инжиниринг), #_android, #_reversinzhiniring (реверс-инжиниринг), #_xiaomi, #_shtrihkod (штрихкод), #_razrabotka_mobilnyh_prilozhenij (
Разработка мобильных приложений
), #_reversinzhiniring (
Реверс-инжиниринг
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:22
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
У коллеги возникло предложение: «Напиши мне за банку чипсов распознавалку штрих-кодов на андроид, чтобы просто в файлики результаты писать и время, брату надо»
В итоге оказалось не брату, да и не надо, и вообще банка чипсов это дорого Ок, пробовал погуглить инфу об интентах или готовую инструкцию по получению данных из сканера, но тщетно. Решено провести разведку манифеста приложения на наличие интентов.
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:22
Часовой пояс: UTC + 5