Рубрика «android» - 20

Security Week 42: зима на подходе, взрывающиеся свиньи, зашифрована половина интернета - 1Как вы наверное уже поняли, этот выпуск еженедельного дайджеста новостей в сфере инфобезопасности посвящен борьбе с желтыми заголовками. Исследователь Джон Сойер нашел уязвимость в ряде моделей смартфонов на базе Android, выпускаемых компанией Foxconn (новость, исследование). Уязвимость произошла из-за ошибки производителя, поставляющего для части клиентов также собственную версию ОС: там имелся отладочный модуль, позволяющий без труда получить привилегии рута и полный доступ к смартфону.

Несмотря на то, что ошибка оказалась достаточно серьезной, Сойер в своем исследовании высказался против использования уязвимостей «для пиара» — не в том смысле, что о них не стоит сообщать публике, а в том, что не нужно раздувать опасность обнаруживаемых дыр ради шеров и лайков. Отсюда и название уязвимости, пародирующее иные попытки брендировать уязвимости вплоть до создания логотипа, флага и рингтона: «Свиной взрыв».

Эксплуатируется Security Week 42: зима на подходе, взрывающиеся свиньи, зашифрована половина интернета - 2 проще простого. Достаточно подключить телефон к компьютеру, ввести пару команд через отладчик и готово. Впрочем, не совсем так. Исследователь обнаружил, что через стандартную консоль adb ввести комнаду не получится и слегка модифицировал софт так, чтобы отправлять на телефон необходимую последовательность символов. Результат: загрузка телефона в режиме отладки, с полным доступом к системе. Это не позволяет напрямую читать зашифрованную информацию, но дает массу возможностей для брутфорса или других специализированных мероприятий.
Читать полностью »

Доброго времени суток! Работая над одним проектом, обнаружил, что через связку retrofit2 и retrofit2 adapter-rxjava нельзя реализовать batch loading в одном потоке.

Приведу пример. Имеем описание retrofit-сервиса:

interface Api {
    @GET("query.json")
    Observable<List<SomeEntityServerView>> getAll(
        @Query("first") int first, 
        @Query("max") int batchSize);
}

Загрузка одного пакета:

service.getAll(0,20).map(list -> ...).observeOn(...).subscribe(...);

Для загрузки всех сущностей с сервера, нам придется каждый раз создавать новый observable для загрузки очередного пакета. Кроме того, как запихнуть все эти observable'ы в один поток, представляется крайне сложным.

Для решения это проблемы, предлагаю достаточно простой подход.
Читать полностью »

Несколько Gradle фишек для вашего Android приложения - 1

В одну из последних рассылок Android Weakly попала статья, в которой упомянули интересные особенности организации сборки проекта. После ее прочтения мне захотелось поделиться кое-чем из того, что использую я для настройки сборки Android проекта.
Читать полностью »

Привет! Недавно понадобилось интегрировать соц. сеть в проекте для Android. Выбор пал на ВК и, соотвественно, их офиц.библиотеку VKCOM/vk-android-sdk. Использовал ее раньше и ещё тогда не был от неё в восторге из-за малого количества примеров. Сейчас смотрю в исходный код, а он всё также далеко не идеален.

Обычно всегда просматриваю ключи в преференсах при запуске приложения и увидел такое вот (после авторизации):

Ключ: VK_SDK_ACCESS_TOKEN_PLEASE_DONT_TOUCH
Значение: scope=offline&https_required=1&access_token=e5cd068be722caafd3c449557e19c19eeed3f54c295a65cd097ed087f61c44394bd985975364fc34641cc&expires_in=0&created=1476876628588&user_id=220436550

Насторожило. Не думаю, что это хорошо хранить такие данные в открытом виде. Вообще, ещё после первого знакомства думал о возможности считывания вводимых данных при авторизации. Почему бы нет?
Читать полностью »

Что такое филиппинский кроссворд.

Цветные филиппинские кроссворды — такой вид головоломок, в сетке которой с помощью чисел зашифрована картинка. Каждое число, расположенные в сетке, кроме единицы, имеет пару. Необходимо подобрать и соединить пары чисел линиями так, чтобы линии удовлетворяли следующим условиям:

— длина каждой линии должна соответствовать числам, расположенным на ее концах;
— линии не должны пересекаться друг с другом и проходить через одни и те же клетки;
— линии могут идти в вертикальном и горизонтальном направлениях, могут преломляться, но не могут проходить по диагонали;
— соединяемые пары чисел должны быть одного цвета.

Так как единица не имеет пары, то она закрашена по умолчанию. В результате решения кроссворда, когда все пары чисел (кроме единиц) соединены линиями, получается рисунок.

Филиппинские кроссворды. Доработка мобильной 2D головоломки для работы с цветными кроссвордами - 1
Читать полностью »

В новом дайджесте история нелюбви к iOS, исследование поисковых запросов в App Store, танцы с Tango, трата $2 млн в игре и последующее разочарование в ней, безопасность IoT и много других интересных материалов.

Дайджест интересных материалов для мобильного разработчика #175 (10-16 октября ) - 1Читать полностью »

Redmi Note 4 — уже одиннадцатый смартфон компании Xiaomi за этот год. В очередной раз производитель последовал принципу «очень хорошо и очень дешево»: в Китае Redmi Note 4 поступил в продажу по цене от $135. Четвертое поколение линейки Remdi Note схоже с предшествующим, но в целом модель была значительно доработана: новинка получила обновленную камеру, цельнометаллический корпус и новую платформу — внутри Redmi Note 4 трудится десятиядерный процессор.

Xiaomi Redmi Note 4: доступный смартпэд - 1
Читать полностью »

Привет. Хочу вам признаться. Я — Лентяй. Эта тёмная тайна, тщательно скрывается от окружающих. Поэтому, чур никому ни слова.
Чтобы никто из окружающих не догадался про это, приходится постоянно работать. Но частенько во время работы, отвлекаюсь на всякие посторонние вещи. Новости почитать, посмотреть почту, историю сообщений. В результате, отвлекающие занятия, занимают слишком много времени, и страдает имидж. Иногда, я близок к разоблачению.
Но однажды я нашел методику управления своим рабочим временем, под названием «Pomodoro». И написал приложение «Таймер Трудового Человека». Потому, что я — Android-Разработчик!

Как Android-разработчик тайм-менеджментом увлёкся, и что и из этого вышло - 1

Итак, ниже под катом я расскажу о творческих метаниях, головоломаниях, и прочих сопуствующих творческому процессу прелестях.
Читать полностью »

Project Tango от Google — проект по созданию мобильных устройств, способных анализировать пространство вокруг себя в трёх измерениях. Благодаря проекту Device Lab мне удалось поиграться одним из таких устройств.

Танцуют ли роботы Tango - 1
Статья автора Сергея Мелехина, в рамках конкурса «Device Lab от Google».
Читать полностью »

Двухголовый MVVM

На недавнем DroidCon Moscow 2016 был доклад о MVVM c Databinding Library и доклад о библиотеке Moxy, помогающей работать с MVP. Дело в том, что за последние полгода мы успели опробовать оба подхода на живых проектах. И я хочу рассказать о своём пути от освоения Databinding Library и выпуска в продакшн проекта на MVVM до осознания, почему я больше не хочу использовать этот паттерн.Читать полностью »