Pull to refresh
189
Karma
0
Rating
Арвид Блументал @andrei_mankevich

Google Certified Android Developer

  • Followers 32
  • Following 1

Как я нашел пасхалку в защите Android и не получил работу в Google

Во-первых, у меня не было цели обмануть DroidGuard, я просто решил хорошо провести время :)
Во-вторых, защиту SafetyNet вполне успешно обходят, и это совсем не новость. Есть даже опенсорс реализация всех проприетарных гугловых сервисов microG Project.

Как я нашел пасхалку в защите Android и не получил работу в Google

Не совсем так. Например, в виртуальной машине есть команды: загрузить строку, загрузить через reflection класс с определенным именем, выполнить через reflection метод с определенным именем. Вот откуда это имя берется — это логика байт-кода. Чтобы узнать имя класса и имя метода, надо интерпретировать команды байт-кода, которые работают со строками.

Как я нашел пасхалку в защите Android и не получил работу в Google

А его же вроде сейчас прикрыли (временно):
foobar is currently down for extended maintenance. If you'd like to be notified when we are back online, please sign up here.

Но вообще да, все эти приколюхи никаких преимуществ не дают. У Гугла все равны.

Как я нашел пасхалку в защите Android и не получил работу в Google

Честно говоря, я после отказа наоборот понял, что в таком интервью куда больше смысла, чем в стандартных вопросах про Android SDK и про всякий синтаксический сахар Kotlin. Мне хоть и обидно, но их подход вполне оправдан. Завтра выйдет новый фреймворк, а фундаментальные знания не устареют.

Я пока пару лет делал игры на Unity, так в Android успела революция произойти: вместо Java пришел Kotlin, RxJava стал золотым стандартом, Android SDK распался на Android Jetpack Components… Ничего, все можно довольно быстро освоить. Даже сертификат получил красивый от Google.

Насчет перезвонят я так скажу. Собеседование я проходил чуть больше года назад :) Не перезвонили. Но я им сам недавно повторно написал. Если посмотреть правде в глаза, они мне нужнее, чем я им: Google в резюме — он такой один, а из таких как я у них очередь стоит.

Как я нашел пасхалку в защите Android и не получил работу в Google

А смысл? :) Это же не дает ровным счетом ничего, никаких преимуществ. Если нет знакомых работающих в Google, можно просто попробовать в linkedin написать кому-нибудь и попросить отправить резюме эйчарам. Будет ровно такой же результат.

Как я нашел пасхалку в защите Android и не получил работу в Google

А почему «отомстил»? Я свое обещание (не болтать лишнего) в целом-то сдержал. Кода виртуальной машины нет, как работает интерпретатор не рассказал… А вся остальная информация и так была в интернете — про запрос, про protobuf, про apk и так далее. Разве что про спрятанные сообщения никто не писал.

Как я нашел пасхалку в защите Android и не получил работу в Google

Вот именно этим DroidGuard и занимается: отличает настоящие живые устройства от эмуляторов, рутованные девайсы или нет и так далее.

Как я нашел пасхалку в защите Android и не получил работу в Google

Защититься от ботов, которые делают вид, что они настоящие Android устройства.
Для этого DroidGuard собирает определенную информацию о девайсе. Какую именно информацию — это решает логика, заложенная в байт-код. Байт-код каждый раз новый возвращается с сервера. По итогу чтобы написать бота, надо реализовать виртуальную машину, которая сможет интерпретировать байт-код DroidGuard.

Как я нашел пасхалку в защите Android и не получил работу в Google

Спасибо, очень приятный комментарий! :)

Хотя точно могу сказать, что мне подготовка пошла все-таки в плюс. Теперь каждый раз когда пишу код, автоматом думаю о сложности O(n). Раньше такие вопросы приходили в голову только если что-то медленно работало и это дело надо оптимизировать.

Как я нашел пасхалку в защите Android и не получил работу в Google

Я вот об этом не подумал, поэтому такого вопроса не ожидал :) А вообще вопрос очень логичный в контексте проекта DroidGuard. Битовые операции, все дела.

Как я нашел пасхалку в защите Android и не получил работу в Google

Насчет корпоративной машины и шаблонного подхода так и было, но другого пути у них в принципе не существует.

Когда-то Макса Хоувел (разработчика Homebrew) не взяли в Google. Он по этому поводу такой твит выдал:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

Я уже немного наелся самореализации, хотелось обратно в уютный мир, где каждый месяц за работу платят деньги :) Увы, пока не сложилось.

Как я нашел пасхалку в защите Android и не получил работу в Google

При этом гении-олимпиадники внутри Google не могут родить ничего дельного (я на Google в обиде, имею право так считать).
Насколько я понимаю, тот же DroidGuard — проект компании Impermium. Google поглотил Impermium, команда перешла в Google, а в Android появилась толковая защита от фрода.

Как я нашел пасхалку в защите Android и не получил работу в Google

Для меня вообще собеседования — это жуткий стресс. Поэтому я по ним не хожу и опыта прохождения не имею :) Я могу по пальцам одной руки перечислить все свои собеседования в жизни.
Но я бы и в спокойной обстановке не выдал Base64, просто потому что понятия не имел как он работает и всю жизнь воспринимал его как данность. А ведь это так, только цветочки перед 5 ягодками настоящего очного собеседования.
Мне процесс собеседования показался очень сложным, и я бесконечно далек от этого уровня. Не знаю, зачем Гуглу нужны все эти гении-олимпиадники, но им виднее.

История еще одной игры на Libgdx+Box2d

А ведь очень даже неплохо получилось! Качественный дизайн — это хорошее преимущество. Но немного покритикую:
— Как по мне, кнопки мелковаты. На планшете ок, но на телефоне как-то некомфортно. Хоть и не промахиваюсь.
— При игре против AI при смене хода вообще ничерта непонятно… Слишком быстро происходит передача хода. AI стреляет мгновенно, непонятно откуда и куда прилетела шашка. Может добавить анимацию прицеливания перед ходом AI?
— Ну и главная проблема — за пределами русского Google Play, похоже, шансов немного.
А так симпатично. Правда, рекламу не увидел ни разу.

Проверяем валидность внутриигровых покупок через Google API

Кстати, если кто-то сомневается, стоит ли заморачиваться с проверкой ин-апов или и так сойдет, то такая небольшая статистика по одной моей игре — приблизительно 60% от общего количества внутреигровых покупок фейковые и идут через Freedom. Не верю, что хоть кто-нибудь из этих 60% заплатил бы, будь эта проверка встроена, но тем не менее бороться с этим лишним не будет.

Провал длиною в год, или опыт разработки игры под Android

И похоже, что с вами многие согласны и несогласны со мной :)
Сейчас как-то модно стало припоминать «ошибку выжившего», поэтому и я ее припомню. На одну вашу успешную игру есть 10 других инди-игр, про которые никто никогда не узнает и которые наберут от силы сотню установок.

100-200$ в день с успешной небольшой игры, конечно, можно получить. Но, во-первых, игра должна быть успешной, а во-вторых — все-таки обычно инди-разработчик хочет повторить судьбу хотя бы Нотча и заработать миллионы, а не среднюю зарплату в месяц. Не получится каждые 2-3 месяца выпускать по успешной игре, каждая из которых будет приносить по 100$ в день, и таким вот незатейливым образом через год рубить по паре десятков тысяч в месяц.

Инди разработка может быть сродни искусству, но заработать на этом такие суммы, про которые мы часто читаем — уже как-то невероятно.

Провал длиною в год, или опыт разработки игры под Android

А можно ссылку на игру?
Не огорчайтесь, но наш с вами поезд уже ушел (я тоже вроде как «инди» разработчик). На мой взгляд графика скучноватая и весьма посредственная. Каждый день в Google Play сейчас появляется сотня новых игр, как мы можем их обставить? Крутой графикой или уникальным геймлеем. Первое дорого, второе сложно :) Шансы на успех призрачно малы. Сделать в одиночку на коленке новый Flappy Bird маловероятно.
Еще мне кажется неудачным выбранный жанр (не мое мнение, мнение издателя — простые логические головоломки больше не зарабатывают). Ну и монетизацию выбрали не самую лучшую — для заработка на рекламе нужно очень много инсталлов, а они просто так из ниоткуда не возьмутся.
А вот с опытом разработки на Unity хочу вас поздравить, это ценно :)

Как я хотел убежать от Admob. История про рекламные сети

eCPM нормальный.

0.58$ eCPM — это просто чудо какое-то! У меня в десять раз ниже (да, 5 центов на тысячу), при этом CTR даже немного выше, fillrate 100%.
Практически все пользователей из России. С российскими рекламными сетями опыт как и в комментарии выше — через пару месяцев fillrate слился.
Вся печаль видимо в том, что игра.

Пишем фреймворк для разработки игр — Mechanic Framework

У меня несколько непривычная стилистика написания кода для Java-программистов, так как до андроида много писал на С++

Java coding conventions слабо зависят от наших привычек :)

Вопрос насчет велосипедности статьи — из серии «зачем делать обертку под opengl и вообще учить его, если есть SDL» и «Зачем делать свою реализацию „Одиночки“, если есть @Singletone»

В контексте вашего примера эта статья из серии «не threadsafe Singletone». Здорово, конечно, что синглтон, но вот правильнее от этого он не станет.

Information

Rating
Does not participate
Location
Рига, Латвия, Латвия
Registered
Activity