О братьях наших меньших разработчиках Андроид ПО, или как я ломал программу обоев от украинских "коллег"
И снова здрасте :)
Как я уже упоминал в нескольких своих постах (первый, второй), у меня своеобразное хобби - реверс-инжиниринг и модификация приложений на Андроид ОС.
В статье "Об многочисленности VPN-приложений, или бесплатный сыр в мышеловке" я упоминал, что разобранное приложение было от украинского разработчика ArtJoker. Сегодня я хочу поговорить о другом украинском разработчике - VisualDev.
Попалась мне на просторах известного сайта 4PDA казалось бы неплохая программка скачивания обоев на андроид-зверек - Обои Full HD 1080p (GooglePlay). Вроде бы и неплохие обои и обновления ассортимента, одно но: программа "весила" неприлично много для простого скачивальщика обоев, да обладала встроенной рекламой по заверениям встроенного в мой аппарат анализатора рекламного кода.
Ииии... Тут повторяется прошлая ситуация...
Разобрав приложение с помощью BAT by Bursoft (за тулзу автору огромный респект), и зайдя в код java я ахуел. Я не думал, что в еще одном отечественном приложении будет настолько много говна мусорного кода. Однако отступать не хотелось, потому вооружившись презервативами я начал свой секс свою работу с приложением.
Прежде всего я проанализировал сколько мусорного кода мне предстоит убрать из п@трашков программы, ну и, собственно, как приблизительно работает линкование на этот мусор внутри кода. По результатам анализа вылезло следующее: соотношение полезного кода к мусору 10Мб к 55Мб. Сама программа построена на движке Apache Cordova, с применением внешних подгружаемых модулей на java script помимо «родного» кода в dex.
Вот скрины патрашков программы (красным помечен мусор в коде):
В результате анализа я отметил наличие следующих «паразитов» в теле приложения:
-реклама Amazon
- реклама AppLovin
- реклама AppoDeal
- реклама и аналитика Chartboost
- реклама CmCm
- реклама Flurry
- реклама и аналитика Google
-микро-код Google App Services
- реклама и аналитика my.target
- реклама Unity3D
- реклама, трекинг и аналитика Yandex
- реклама rjfun.cordova.ad/admob
-плеер рекламы Nexage
- внешние модули рекламы, подключаемые через движок Cordova:
*реклама adcolony
*реклама avocarrot
*реклама facebook
*реклама flurry
*реклама revmob
*реклама tapjoy
*реклама vungle
*реклама yandex
*исполняемый код внешнего модуля startapp
Как видно, мусора овердофига, так что мне пришлось изрядно поковыряться в оставшемся полезном коде, чтобы выгрести «авгиевы конюшни».
Итогом стал полноценный мод приложения, выполняющий свою предначертанную функцию: просмотр, скачивание изображений и установка их в качестве обоев на ваше Андроид-тельце:
Чейнджлог мода:
-полная версия с доступом ко всем категориям
-удален весь говнокод разработчика
-удалена реклама Amazon
-удалена реклама AppLovin
-удалена реклама AppoDeal
-удалена реклама и аналитика Chartboost
-удалена реклама CmCm
-удалена реклама Flurry
-удалена реклама и аналитика Google
-удален вообще весь код Google
-удалена реклама и аналитика my.target
-удалена реклама Unity3D
-удалена реклама, трекинг и аналитика Yandex
-удалена реклама rjfun.cordova.ad/admob
-удален код плеера рекламы Nexage
-удалены внешние модули рекламы, подключаемые через движок Cordova:
*реклама adcolony
*реклама avocarrot
*реклама facebook
*реклама flurry
*реклама revmob
*реклама tapjoy
*реклама vungle
*реклама yandex
*исполняемый код внешнего модуля startapp
-очищен манифест и ресурсы
-nodpi-графика (ее по сути очень мало)
-удалены лишние файлы (шрифта/графики модулей рекламы и т.п.)
-экстра-сжатие приложения (не вли¤ющее на работу приложения) UltraZip 3.0
-хак no-update: приложение не обновится само до новой версии через маркет (повышена версия)
-ставится без патчей LuckyPatcher
Скачать: WallpaperFullHD_1.7.1_iRhinMod.apk (1,54 Мб при весе оригинала в 7,5Мб).
ЗЫ: Напоминаю: несмотря на то, что разработчик украинский, обои программа качает с российских ресурсов, закрытых для Украины, потому для жителей Украины необходимо воспользоваться любым VPN-туннелем, например OperaVPN/OpenVPN/Tor и др..
В довершение всего хочу отметить, что нездоровая тенденция впихнуть невпихуемое в простое приложение закрепилась за китайцами и украинцами, немного отстают от них индусы и европейцы (а также американцы, например, та же Google, которая, к слову, ограничивается только внедрением Аналитики/Трекинга/Рекламы своего же «производства»). Это не есть хорошо. Скачивая с маркета и устаналивая приложение на свой аппарат (смартфон/таблет) я хочу чтобы приложение выполняло только те функции, о которых заявлено в его описании, а не следило за мной (для таргетной рекламы)/показывало рекламу/отслеживало мое местоположение и т.п. и т.д..
Да, я перфекционист в этом плане, можете кидать в меня тапками, я не обижусь)
Извиняюсь, что не расписал процесс удаления говнокода из приложения, это, наверно, мало кому будет интересно (ну не умею я расписывать какие строки кода нужно искать среди большого количества файлов и как их следует удалять, - мне легче сделать чем описать/объяснить).
Мод мой, текст мой, приложение оригинала – не моё.
Я не профессионал, я любитель поковырять андроид-приложения таким образом, которым никто еще не ковырял)
С уважением, Андрей Aeron Li (на сайте 4PDA ник Aeronliru).