Forwarded from Android Security & Malware
Three ways how to dynamically load code into an Android application at runtime
https://erev0s.com/blog/3-ways-for-dynamic-code-loading-in-android/
https://erev0s.com/blog/3-ways-for-dynamic-code-loading-in-android/
Erev0S
3 ways for Dynamic Code Loading in Android
erev0s blog for cyber security and more
🔥2👍1
Forwarded from StartAndroid
История редизайна иконки Android Studio
#androidstudio
https://android-developers.googleblog.com/2023/05/redesigning-android-studio-logo.html
#androidstudio
https://android-developers.googleblog.com/2023/05/redesigning-android-studio-logo.html
🗿5👍1🤔1
Forwarded from AppFiles - Mobile Development
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject.
Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
👍5🔥2
Forwarded from Mobile AppSec World (Yury Shabalin)
Эмулятор Smali-кода на Python
Весьма интересную штуку нашел недавно, еще не успел посмотреть, но возможно будет полезно тем, кто занимается патчем smali-кода.
Это небольшой и расширяемый эмулятор для smali-кода, написанный на Python.
Не думаю, что он сильно применим для реальных задач, но в качестве погружения и понимания, как работает smali и какие инструкции как влияют на исполнение может быть интересен. Как минимум, чтобы протестировать небольшое изменение, не нужно будет пересобирать приложение, чтобы проверить, нет ли ошибки.
#android #smali #emulator
Весьма интересную штуку нашел недавно, еще не успел посмотреть, но возможно будет полезно тем, кто занимается патчем smali-кода.
Это небольшой и расширяемый эмулятор для smali-кода, написанный на Python.
Не думаю, что он сильно применим для реальных задач, но в качестве погружения и понимания, как работает smali и какие инструкции как влияют на исполнение может быть интересен. Как минимум, чтобы протестировать небольшое изменение, не нужно будет пересобирать приложение, чтобы проверить, нет ли ошибки.
#android #smali #emulator
GitHub
GitHub - user1342/PocketSmali: A modular and extendable Python tool for emulating simple SMALI code.
A modular and extendable Python tool for emulating simple SMALI code. - user1342/PocketSmali
👍2🔥2
Forwarded from Android Security & Malware
Flipper zero can root Xiaomi vaccum robot using usb uart app
https://www.reddit.com/r/flipperzero/comments/13sabij/flipper_zero_can_be_used_for_xiaomi_vaccum_robot/
Tutorial: https://builder.dontvacuum.me/dreame/
https://www.reddit.com/r/flipperzero/comments/13sabij/flipper_zero_can_be_used_for_xiaomi_vaccum_robot/
Tutorial: https://builder.dontvacuum.me/dreame/
😱4👍2😁2
Forwarded from AppFiles - Mobile Development
Начинаем работу с Detekt, статическим анализатором кода для Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
👍4🔥1
Forwarded from Kotlin Multiplatform (Kostya)
Недавно в чате в очередной раз всплыл вопрос о том, что не надо использовать expect/actual там где достаточно обычных интерфейсов. А сегодня я наткнулся на статью как раз об этом!🤌
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
Коин классный и популярный DI фреймворк. Автор на его примере показывает, как инжектить платформенные реализации в общий код. 👍
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
Коин классный и популярный DI фреймворк. Автор на его примере показывает, как инжектить платформенные реализации в общий код. 👍
👍4🔥2👎1
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
👍1👎1
Forwarded from Mobile Developer (Алексей Гладков)
Пишем корутины с нуля [EN]
https://blog.kotlin-academy.com/kotlin-coroutines-animated-part-1-coroutine-hello-world-51797d8b9cd4
Лучший способ понять фреймворк - написать его с нуля. Чем собственно и заняты люди в этой статье
👉 Как сделать асинхронный код синхронным
👉 Как это все работает в рантайме
👉 Интерфейс Continuation (suspend под капотом)
👉 и многое другое интересное
https://blog.kotlin-academy.com/kotlin-coroutines-animated-part-1-coroutine-hello-world-51797d8b9cd4
Лучший способ понять фреймворк - написать его с нуля. Чем собственно и заняты люди в этой статье
👉 Как сделать асинхронный код синхронным
👉 Как это все работает в рантайме
👉 Интерфейс Continuation (suspend под капотом)
👉 и многое другое интересное
Medium
Kotlin Coroutines Animated: Part 1 - Coroutine Hello World
Let’s build the coroutine framework from scratch!
👍5🔥2❤1
Forwarded from Android Security & Malware
Binder Trace: Tool for intercepting and parsing Android Binder messages Think of it as "Wireshark for Binder"
https://github.com/foundryzero/binder-trace
https://github.com/foundryzero/binder-trace
GitHub
GitHub - foundryzero/binder-trace: Binder Trace is a tool for intercepting and parsing Android Binder messages. Think of it as…
Binder Trace is a tool for intercepting and parsing Android Binder messages. Think of it as "Wireshark for Binder". - foundryzero/binder-trace
🔥3👍1
Forwarded from Mobile Developer (Алексей Гладков)
Как работает Android code
https://medium.com/@charlie.lee.yo/understanding-how-android-code-runs-2091049318f8
Обожаю статьи, которые показывают как оно устроено под капотом. Очень полезно для понимания процессов, а не заучивания
👉 Какие фазы компиляции
👉 Устройство dex файлов
👉 Как исполняется bytecode
👉 … и многое другое
https://medium.com/@charlie.lee.yo/understanding-how-android-code-runs-2091049318f8
Обожаю статьи, которые показывают как оно устроено под капотом. Очень полезно для понимания процессов, а не заучивания
👉 Какие фазы компиляции
👉 Устройство dex файлов
👉 Как исполняется bytecode
👉 … и многое другое
Medium
Understanding How Android Code Runs
A simple example to go through Android bytecode
👍6🫡2🤔1
Forwarded from Android Broadcast (Кирилл Розов)
Media is too big
VIEW IN TELEGRAM
Compose Hammer - плагин для Android Studio, который содержит много шаблонов Material3 компонентов и Jetpack Compose, которые вам нужно просто выбрать из боковой панели и код вставится в редакторе
#compose
#compose
👍3🔥3
Forwarded from AppFiles - Mobile Development
Platform Samples - коллекция примеров применения различных API платформы Android.
Целью этих примеров является демонстрация определенной функциональности в изоляции, и они могут использовать упрощенный код. Для лучших практик в реальных условиях разработчики рекомендуют следовать документации и Now In Android.
Среди рассмотренных тем - доступность, камера, подключение, графика, геолокация, приватность, пользовательский интерфейс.
Platform Samples на GitHub: https://github.com/android/platform-samples
Платформа: Android
⭐️: 234
Целью этих примеров является демонстрация определенной функциональности в изоляции, и они могут использовать упрощенный код. Для лучших практик в реальных условиях разработчики рекомендуют следовать документации и Now In Android.
Среди рассмотренных тем - доступность, камера, подключение, графика, геолокация, приватность, пользовательский интерфейс.
Platform Samples на GitHub: https://github.com/android/platform-samples
Платформа: Android
⭐️: 234
GitHub
GitHub - android/platform-samples: A collection of samples of different Android OS platform APIs.
A collection of samples of different Android OS platform APIs. - android/platform-samples
👍2🔥2
Forwarded from Mobile AppSec World (Yury Shabalin)
Разрешения в Android
Вдохновлённые одной из статей Oversecured про типичные ошибки в разрешениях, которые присутствуют при разработке приложений мы решили собрать чек-лист чуть побольше и дать немного больше описания и теории всем, кто хотел бы узнать что-то новое или освежить воспоминания об этом инструменте.
По итогу родилась статья на Хабр.
Прошу вашего внимания и, надеюсь, что информация окажется полезной!
Всем приятного чтения и хорошего настроения!
#habr #android #permissions
Вдохновлённые одной из статей Oversecured про типичные ошибки в разрешениях, которые присутствуют при разработке приложений мы решили собрать чек-лист чуть побольше и дать немного больше описания и теории всем, кто хотел бы узнать что-то новое или освежить воспоминания об этом инструменте.
По итогу родилась статья на Хабр.
Прошу вашего внимания и, надеюсь, что информация окажется полезной!
Всем приятного чтения и хорошего настроения!
#habr #android #permissions
Хабр
Permissions в Android: как не допустить ошибок при разработке
Всем привет! На связи Юрий Шабалин, ведущий архитектор Swordfish Security и генеральный директор Стингрей Технолоджиз. Эта статья написана в соавторстве с Android-разработчиком Веселиной Зацепиной (...
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Существует отличный вариант украсить заголовки страниц в приложении при перелистывании. Предлагаем вам туториал — изучайте 😎
Читать статью
#новостиproglib
Читать статью
#новостиproglib
🤔3👍2👎2🔥2
Forwarded from Android Guards
Если для эксплуатации уязвимости нужно передать
#aht
Parcelable класс в intent-е, то есть пара способов это сделать. Представим, что activity ожидает модель User, которая лежит в пакете com.myapp.xxx. Можно создать в эксплойте такую же структуру пакетов, и класс с таким же названием и необходимыми полями. Чтобы не писать реализацию сериализации руками, то можно воспользоваться плагином и добавить к созданному классу аннотацию @Parcelize. Но иногда классы бывают сложными или их требуется несколько сразу. В этом случае проще взять из целевого приложения .dex файлы с этими классами, положить их в assets и работать с ними через DexClassLoader. Пример здесь.#aht
👍2🔥2🤔1
Forwarded from AppFiles - Mobile Development
This media is not supported in your browser
VIEW IN TELEGRAM
Clock of Clocks - анимированные часы, сделанные с помощью Jetpack Compose.
Clock of Clocks на GitHub: https://github.com/khoa-omega/clock-of-clocks
Платформа: Android
⭐️: 22
Clock of Clocks на GitHub: https://github.com/khoa-omega/clock-of-clocks
Платформа: Android
⭐️: 22
🔥5👍2😱1
Forwarded from Dev Easy Notes (Nikita)
Хочу оформить главные, можно назвать их заповедями тестирования или постулатами, называйте как хотите. Я уже в разработке почти 6 лет и вот весь мой опыт, который есть на данный момент можно оформить так:
Зачем тесты?
👉 Тесты не избавляют от багов, не делают программу надежнее и не заставляют тебя писать чистый код. Тесты нужны лишь убедится, что ты новым кодом не сломал предыдущий, позволяют не оглядываться назад на каждом шагу
👉 Тесты имеют смысл только в том случае, если они постоянно запускаются на CI и блокируют МРы, иначе это бессмысленная трата времени, плавали знаем
👉 Тест плох, если он падает постоянно, на него перестают обращать внимания и забивают
👉 Тест плох если всегда проходит, значит он нихрена не тестирует
👉 Тест пишем только тогда, когда уверены, что нет другого механизма обеспечить качество (см. прошлые посты)
👉 Флакающие/мигающие тесты, от таких тестов нужно избавляться также быстро как гугл отказывается от проектов. Мигающие тесты приносят целый ворох проблем: не дают никакой информации, нагружают систему т.к приходится их перезапускать, и увеличивают вероятность оказаться вне поля зрения.
Как не нужно тестировать?
👉 Не нужно писать тесты для банальных вещей когда у вас репозиторий тупо в сеть ходит и выдает список или проверять правильно ли мы вызываем какой-то метод
👉 Не нужно делать тесты, которые протестируют все возможные кейсы на свете. Сосредоточтесь на базовых сценариях, для всего остального есть мониторинг, поддержка и грамотный подход к ошибкам
👉 Конкретно в мобильной разработке, нахер не нужны тесты которые тестируют цвета, иконки, правильность отображения или не дай бог анимации. Такие тесты ебанутся какие дорогие, а выхлоп от них никакущий.
👉 Не нужно делать тестов на "всякий случай", нужно чтобы у каждого теста было четкое обоснование зачем он нужен
👉 Попытки добится какого либо процента покрытия кода бессмысленная дроч, которая ничего не дает, а только вынуждает идти на хаки и писать тесты на сэтеры (кринж даже от упоминания)
Как лучше тестировать?
👉 Тесты не должны ломаться при рефакторинге, и быть обузой. Иначе разрабы просто будут боятся рефакторить код, а это приведет к протуханию кода
👉 Тесты должны писаться также легко как и основной код
👉 В тестах может быть дублирование, так как избавление от дублирование это уже абстракция, абстракция это сложно, а сложность ведет к багам. Вам нужны баги еще и в тестах?
👉 Ассинхронность. Как показывает практика лучше ничего не подменять и тестировать в условиях реальной работы. Иначе в тестах на одном потоке все прекрасно, а в проде гонка и плавающие баги (см. подход из предыдущего поста).
👉 Тесты могут потребовать изменения в архитектуре или инфраструктуре, это ок так и должно быть. Однако внутри кода проекта не должно быть упоминаний о тестах: @visiblefortesting или idling в коде проекта это сигнал о том, что вы профакапились с архитектурой
Зачем тесты?
👉 Тесты не избавляют от багов, не делают программу надежнее и не заставляют тебя писать чистый код. Тесты нужны лишь убедится, что ты новым кодом не сломал предыдущий, позволяют не оглядываться назад на каждом шагу
👉 Тесты имеют смысл только в том случае, если они постоянно запускаются на CI и блокируют МРы, иначе это бессмысленная трата времени, плавали знаем
👉 Тест плох, если он падает постоянно, на него перестают обращать внимания и забивают
👉 Тест плох если всегда проходит, значит он нихрена не тестирует
👉 Тест пишем только тогда, когда уверены, что нет другого механизма обеспечить качество (см. прошлые посты)
👉 Флакающие/мигающие тесты, от таких тестов нужно избавляться также быстро как гугл отказывается от проектов. Мигающие тесты приносят целый ворох проблем: не дают никакой информации, нагружают систему т.к приходится их перезапускать, и увеличивают вероятность оказаться вне поля зрения.
Как не нужно тестировать?
👉 Не нужно писать тесты для банальных вещей когда у вас репозиторий тупо в сеть ходит и выдает список или проверять правильно ли мы вызываем какой-то метод
👉 Не нужно делать тесты, которые протестируют все возможные кейсы на свете. Сосредоточтесь на базовых сценариях, для всего остального есть мониторинг, поддержка и грамотный подход к ошибкам
👉 Конкретно в мобильной разработке, нахер не нужны тесты которые тестируют цвета, иконки, правильность отображения или не дай бог анимации. Такие тесты ебанутся какие дорогие, а выхлоп от них никакущий.
👉 Не нужно делать тестов на "всякий случай", нужно чтобы у каждого теста было четкое обоснование зачем он нужен
👉 Попытки добится какого либо процента покрытия кода бессмысленная дроч, которая ничего не дает, а только вынуждает идти на хаки и писать тесты на сэтеры (кринж даже от упоминания)
Как лучше тестировать?
👉 Тесты не должны ломаться при рефакторинге, и быть обузой. Иначе разрабы просто будут боятся рефакторить код, а это приведет к протуханию кода
👉 Тесты должны писаться также легко как и основной код
👉 В тестах может быть дублирование, так как избавление от дублирование это уже абстракция, абстракция это сложно, а сложность ведет к багам. Вам нужны баги еще и в тестах?
👉 Ассинхронность. Как показывает практика лучше ничего не подменять и тестировать в условиях реальной работы. Иначе в тестах на одном потоке все прекрасно, а в проде гонка и плавающие баги (см. подход из предыдущего поста).
👉 Тесты могут потребовать изменения в архитектуре или инфраструктуре, это ок так и должно быть. Однако внутри кода проекта не должно быть упоминаний о тестах: @visiblefortesting или idling в коде проекта это сигнал о том, что вы профакапились с архитектурой
🔥3👍2
Forwarded from Mobile Developer (Алексей Гладков)
Набор маленьких анимаций в Jetpack Compose [EN]
https://rodrigomartind.medium.com/the-art-of-small-animations-in-android-with-jetpack-compose-566caa94deba
Просто прикольные визуальные эффекты для вашей библиотеки
👉 Эффект нажатия
👉 Эффект колокольчика
👉 Эффект сжатия
👉 и еще пару эффектов
https://rodrigomartind.medium.com/the-art-of-small-animations-in-android-with-jetpack-compose-566caa94deba
Просто прикольные визуальные эффекты для вашей библиотеки
👉 Эффект нажатия
👉 Эффект колокольчика
👉 Эффект сжатия
👉 и еще пару эффектов
Medium
The Art of Small Animations in Android with Jetpack Compose
Small details that make a difference for Users
👍2🔥2