Завантажити архіватор для андроїда 7zip російською. Функціональні zip- та rar-архіватори для Андроїд
Завантажити ЗІП-архіватор на Андроїд можна в інтернет-магазині Google Play Store. В даний час файловий архів можна вважати одним із найпопулярніших типів даних. Йдеться про розширення ZIP, RAR, 7Z, TAR та багато інших. Суть застосування архівів полягає в розміщенні множини файлів у певному місці, яке займає менше файлового простору.
Якщо вам довелося зіткнутися з необхідністю обробляти запаковані дані на смартфоні або планшеті, можна скористатися програмами, які створювалися спеціально під операційну систему Android.
Зазвичай це програми з вузькою спеціалізацією, які зосереджені лише на упаковці та розпакуванні файлів.
Більшість файлових менеджерів також мають інтегровані функції для архівації. Встановлюючи такий менеджер, користувач отримує не тільки інструмент для керування файлами, але й архіватор для Android. Якщо ж вас цікавить окремий додаток-розпакувальник, слід використовувати такі програми.
Популярні програми
Програма AndroZip – це хороший безкоштовний інструмент, який створює та розпаковує різні типи архівів. Він підтримує формати ZIP, RAR, TAR, GZIP, BZIP2 і т.д. AndroZip також має файловий менеджер, який допомагає переміщати деякі файли між папками або відправляти їх на інші пристрої.
Це проста програма, яка не відрізняється стильним інтерфейсом, але добре справляється зі своїми обов'язками. Під час створення ZIP-файлів передбачені опції для шифрування та встановлення паролів на архівах. AndroZip містить рекламу, але можна скачати безкоштовно. Мобільна версія програми вперше з'явилася у 2009 році.
B1 Archiver — це один із найкращих інструментів для створення та розпакування різних типів архівів.Він працює з найбільш популярними форматами ZIP та RAR, але також підтримує 37 інших розширень. Програма відмінно підійде користувачам, які звикли працювати з незвичайними або унікальними типами архівів, які не знайомі більшості обивателів.
Вона пропонує підтримку багатосторінкових архівів RAR та B1, які можуть виявитися корисними в деяких ситуаціях. Це гарний додаток зі зручним інтерфейсом. Платна версія дозволяє використовувати деякі додаткові функції та позбутися реклами. Але навіть безкоштовне складання виглядає гідно та підійде для більшості користувачів.
Програмне забезпечення, яке отримало назву RAR, належить компанії RARLAB, яка розробила WinRAR. Це відомий інструмент для ПК, який перенесли на платформу Android. Він підтримує багато типів файлів, таких як RAR, ZIP, TAR, 7Z і т.д.
Передбачено стандартний набір параметрів шифрування та встановлення пароля. За допомогою RAR можна запускати тести для оцінки ефективності архівації та відновлювати пошкоджені дані. Але відновити пошкоджені файли вдається далеко не завжди. RAR — це потужний інструмент, який підійде для більшості користувачів.
Інші програми Зіп
WinZip, який можна вважати одним із найстаріших архіваторів, тепер також доступний для платформи Android.Програма зберегла свій древній інтерфейс, який може не сподобатися сучасним користувачам. Якщо зовнішній вигляд програми вас не бентежить, то в іншому вона здається гідним додатком.
WinZip підтримує всі поширені та популярні типи архівів. Він має унікальну функцію, яка полягає в підтримці Dropbox і Google Drive. Конкуруючі програми не пропонують таких можливостей. У результаті недоліки WinZip зводяться лише до старомодного дизайну. Це безкоштовний додаток, який безперечно варто спробувати.
Інструмент ZArchiver абсолютно безкоштовний і він з'явився на платформі Android вже давно.Він пропонує зручний інтерфейс користувача з інтуїтивно зрозумілими елементами управління і підтримує безліч архівних форматів. Передбачені різні варіанти шифрування, захисту паролем та можливість розбивати архів на частини.
У додатку немає нічого особливого, але це не заважає йому добре впоратися зі своїми функціями. ZArchiver підійде користувачеві, який хоче просто увійти, щоб розпакувати або створити архів, а потім вийти. Завантажуйте цю програму, якщо вам не потрібні додаткові функції.
RAR- незамінна програма для Android пристроїв необхідна для відкриття та розпакування.rar файлів. Вона підійде більшості користувачів, які бажають розархівувати дані в телефоні або планшеті без участі комп'ютера.
Як відкрити rar на андроїді легко та просто
Достатньо завантажити RAR на андроїд, щоб ви змогли розархівувати.rar або.zip дані. Напевно, кожен стикався з проблемою, коли скачавши файли з інтернету на мобільний пристрій, вони мали формат RAR або ZIP і не відкривалися стандартними програмами в телефоні. Рідше зустрічаються TAR, GZ, BZ2, XZ, 7z, ISO, ARJ архіви, які вимагають додатково встановленого софта - распаковщика.Далеко ходити не треба, на нашому сайті сайт зустрічаються ігри в APK форматі, що йдуть у парі з Кешем, що знаходиться в архіві. Після завантаження виникає питання – як відкрити файл rar? Тому для полегшення та спрощення встановлення таких ігор, рекомендуємо завантажити програму RAR.
Хочеться відзначити, даний архіватор зчитує і розпізнає практично всі відомі архіви, включаючи останні версії. З ним ви зможете самі створювати архіви, стискати контент і далі відправляти будь-яким зручним способом.
Архіватор RAR для Андроїд – найкращий інструмент для відкриття та керування стислими файлами, що володіє всіма функціями комп'ютерної версії WinRAR!
Кожен користувач ПК напевно хоч раз мав справу з zip-файлами. Це своєрідні сховища або архіви, в яких інформація, що зберігається в стислій формі, витягується за допомогою додатків, здатних працювати з таким форматом.
Але коли йдеться про смартфоні, треба розуміти, що в ньому немає інструментів, що є на персональному комп'ютері, які використовуються для введення або виведення будь-якої інформації. Проте періодично стає актуальним питання, як відкрити файл zip на Андроїді, і Rar архіви, а так само розпакувати (або розархівувати) зип?
Оскільки ми говоримо про різні процеси, зупинимося на кожному з них детальніше.
Наведемо такий приклад. Текстури, моди, а також карти до будь-якої гри укладені в декількох файлах або папках, але завантажити їх тільки одним посиланням технічно просто неможливо. Тому й застосовуються додатки-архіватори, які виконують функцію «запаковування» в один архів кілька файлів (папок), чим значно полегшується процес скачування.
Архівів існує кілька типів та форматів. Найпопулярніші формати універсальні (багатофункціональні) ZIP, RAR, 7z вони зливають в один файл інформацію, роблять стиск, оформляють архіви як саморозпаковуються.
Як розпакувати архів на Андроїді з розширенням Zip та Rar
Йдеться про поширений формат, тому знайти хороший софт не складе труднощів (нижче ми перерахуємо деякі додатки, ніж відкрити Zip на Андроїді та Rar). Принцип роботи з архівами практично не відрізняється в залежності від утиліти, що використовується, тому ми розглянемо роботу з архівом на прикладі одних з кращих архіваторів.
Відкриття архівів за допомогою програмиRar
Rar на Андроїд - найпопулярніша програма для роботи з архівами, спочатку розроблена для ПК, але тепер портована і на мобільні платформи. Вміє як розпаковувати, так і запаковувати Зіп та Рар файли.
Щоб розпакувати архів:
- Для початку, потрібно завантажити та встановити саму програму на свій пристрій (посилання вище);
- Після встановлення на екрані у вас з'явиться іконка програми, натискаємо її;
- У списку папок знаходимо ту, де лежить потрібний нам архів;
- Знайшовши, клацаємо по ньому один раз, після чого з'явиться віконце з опціями, в якому потрібно вибрати «Вилучити файли» (рис. 1);
- Далі, можна вибрати, куди буде проводиться розпакування, після чого натискаємо «ок» (рис. 2);
- При великому розмірі файлів, що виймаються, процес можна відправити у фоновий режим (рис. 3) .
Щоб запакувати архів:
- Зайшовши у програму, знаходимо необхідні для архівування файли;
- Виділивши їх, натискаємо пальцем і тримаємо, після чого випливе віконце з опціями ( рис.1);
- Натискаємо «Додати до архіву». Вам буде запропоновано кілька варіантів стиснення «Rar», «Zip», «Rar 4x» — вибираємо будь-який (рис. 2), за бажанням можна створити пароль (тобто, доступ до архіву можна буде отримати тільки після введення заданого вами пароля)
- Все, що залишилося тільки натиснути «ок», запуститься процес архівації (мал. 3), після чого ваш архів буде готовий. Примітка: якщо процес буде довгим, через великий розмір файлу, програму можна надіслати у фоновий режим.
В принципі, функцій даного додатку вам буде достатньо, але якщо з якихось причин, воно не захоче дружити з вашим пристроєм, розглянемо принцип роботи інших, а який архіватор краще, вирішувати вам.
Відкриття архівів за допомогою програми Andro Zip
Утиліта Andro Zip на Андроїд — програма крім стандартних інструментів, містить функції менеджера завдань та файлового менеджера, працює з winZIP та winRAR архівами.
![]() |
Andro Zip для Android. |
Робота з програмою покроково:
Щоб розпакувати архів:
- Завантажуємо саму програму та встановлюємо її на свій пристрій (посилання вище);
- Після запуску в меню інтерфейсу знаходимо папку з архівом, тиснемо;
- У меню вибираємо потрібний пункт «Витягнути файл тут» (рис. 1);
- Почнеться процес (рис. 2).
Щоб запакувати архів:
- Для запакування файлів знову заходимо в програму, вибираємо необхідні файли, натискаємо в меню поле «Створити ZIP» (рис. 1) ;
- Процес запущено, після чого буде створено архів (рис. 2). Примітка: цей додаток підтримується поки що не всіма моделями смартфонів.
Відкриття архівів за допомогою інших додатків
Окрім згаданих програм «Rar на Андроїд» та «Андро Зіп» можна скористатися можливостями таких програм:
- - Підтримує практично всі формати, наділене простим дизайном та повним набором необхідних функцій. Є платна версія.
- - файловий менеджер, є безкоштовна версія та робота з архівами у вигляді додаткової опції.
- — запаковує лише «ЗІП» архіви, розпаковує будь-які формати. Розповсюджується безкоштовно, але дратує рекламою.
- 7 Zip для Android - багатофункціональний архіватор, простий в управлінні, створює резервні копії, поширення повністю безкоштовно.
- — чудовий диспетчер файлів із функціоналом, що вражає уяву, проте можливості безкоштовної версії дуже обмежені.
Підсумок
Сподіваємося, що представлений вище матеріал написаний доступно і зрозуміло, і тепер ви з легкістю зможете працювати з zip-файлами, однак існує достатня кількість файлів з такими розширеннями, які нелегко відкрити на апаратах Android, а охопити всі варіанти в одній статті просто нереально.
Тому, із задоволенням відповімо на всі питання, що вас цікавлять, що виникли не тільки після прочитання цієї статті, але і труднощі, пов'язані з відкриванням файлів інших форматів.
Іноді деякі програми на Android чимось не влаштовують користувача. Як приклад можна навести настирливу рекламу. А то буває і так – усім хороша програма, та тільки переклад у ній або кривою, або зовсім відсутня. Або, наприклад, програма тріальна, а отримати повну версію можливості немає. Як змінити ситуацію?
Вступ
У цій статті ми поговоримо про те, як розібрати пакет APK з додатком, розглянемо його внутрішню структуру, дизасемблуємо та декомпілюємо байт-код, а також спробуємо внести до додатків кілька змін, які можуть принести нам ту чи іншу вигоду.
Щоб зробити все це самостійно, знадобляться хоча б початкові знання мови Java, на якій пишуться програми для Android, і мови XML, яка використовується в Android повсюдно - від опису самої програми та її прав доступу до зберігання рядків, які будуть виведені на екран. Також знадобиться вміння поводитися зі спеціалізованим консольним софтом.
Отже, що ж є пакет APK, в якому поширюється абсолютно весь софт для Android?
Декомпіляція додатків
У статті ми працювали тільки з дизассембльованим кодом програми, проте якщо у великі програми вносити серйозніші зміни, розібратися в коді smali буде набагато складніше. На щастя, ми можемо декомпілювати код dex Java-код, який буде хоч і не оригінальним і не компилируемым назад, але набагато легшим для читання та розуміння логіки роботи програми. Щоб зробити це, нам знадобляться два інструменти:
- dex2jar - транслятор байт-коду Dalvik в байт-код JVM, на основі якого ми зможемо отримати код мовою Java;
- jd-gui - сам декомпілятор, що дозволяє отримати з байт-коду JVM код Java, що читається. Як альтернативу можна використовувати Jad (www.varaneckas.com/jad); хоч він і досить старий, але в деяких випадках генерує код, що більш читається, ніж Jd-gui.
Використовувати їх слід так. Спочатку запускаємо dex2jar, вказуючи як аргумент шлях до apk-пакета:
%dex2jar.sh mail.apk
В результаті в поточному каталозі з'явиться Java-пакет mail.jar, який можна відкрити в jd-gui для перегляду Java-коду.
Пристрій APK-пакетів та їх отримання
Пакет програми Android, по суті, є звичайним ZIP-файлом, для перегляду вмісту та розпакування якого ніяких спеціальних інструментів не потрібно. Достатньо мати архіватор – 7zip для Windows або консольний unzip у Linux. Але це щодо обгортки. А що всередині? Усередині ж у нас у загальному випадку така структура:
- META-INF/- містить цифровий сертифікат програми, що засвідчує його творця, та контрольні суми файлів пакета;
- res/ - різні ресурси, які додаток використовує у своїй роботі, наприклад, зображення, декларативний опис інтерфейсу, а також інші дані;
- AndroidManifest.xml- Опис програми. Сюди входить, наприклад, список необхідних дозволів, необхідна версія Android та необхідна роздільна здатність екрана;
- classes.dex- компільований байт-код програми для віртуальної машини Dalvik;
- resources.arsc- теж ресурси, але іншого роду - зокрема рядки (так-так, цей файл можна використовувати для русифікації!).
Перелічені файли та каталоги є якщо не у всіх, то, мабуть, в більшості APK. Однак варто згадати ще кілька не настільки поширених файлів/каталогів:
- assets- Аналог ресурсів. Основна відмінність - для доступу до ресурсу необхідно знати його ідентифікатор, список asset'ів можна отримувати динамічно, використовуючи метод AssetManager.list() в коді програми;
- lib– нативні Linux-бібліотеки, написані за допомогою NDK (Native Development Kit).
Цей каталог використовують виробники ігор, розміщуючи туди двигун гри, написаний на C/C++, а також творці високопродуктивних програм (наприклад, Google Chrome). З пристроєм розібралися. Але як же отримати сам файл пакета програми, що цікавить? Оскільки без рута з пристрою забрати файли APK неможливо (вони лежать у каталозі /data/app), а рутити не завжди доцільно, є як мінімум три способи отримати файл програми на комп'ютер:
- розширення APK Downloader для Chrome;
- додаток Real APK Leecher;
- різні файлообмінники та варезники.
Який із них використовувати - справа смаку; ми вважаємо за краще використовувати окремі програми, тому опишемо використання Real APK Leecher, тим більше що написаний він на Java і, відповідно, працюватиме хоч у вінді, хоч у ніксах.
Після запуску програми необхідно заповнити три поля: Email, Password та Device ID - та вибрати мову. Перші два - e-mail та пароль твого гуглоаккаунта, який ти використовуєш на пристрої. Третій є ідентифікатором пристрою, і його можна отримати, набравши на номеронабирачі код # #8255## а потім знайшовши рядок Device ID. При заповненні треба ввести лише ID без префікса android-.
Після заповнення та збереження нерідко вискакує повідомлення "Error while connecting to server". Воно не має відношення до Google Play, тому сміливо його ігноруй і шукай пакети, які тебе цікавлять.
Перегляд та модифікація
Припустимо, ти знайшов пакет, що тебе цікавить, скачав, розпакував… і при спробі перегляду якого-небудь XML-файлу з подивом виявив, що файл не текстовий. Чим же його декомпілювати та як взагалі працювати з пакетами? Невже потрібно ставити SDK? Ні, SDK ставити не обов'язково. Насправді для всіх кроків розпакування, модифікації та упаковки пакетів APK потрібні наступні інструменти:
- архіватор ZIPдля розпакування та запакування;
- smali- асемблер/дизассемблер байт-коду віртуальної машини Dalvik (code.google.com/p/smali);
- aapt- інструмент для запакування ресурсів (за замовчуванням ресурси зберігаються у бінарному вигляді для оптимізації продуктивності програми). Входить до складу Android SDK, але може бути отриманий окремо;
- signer- Інструмент для цифрового підпису модифікованого пакета (bit.ly/Rmrv4M).
Використовувати всі ці інструменти можна і окремо, але це незручно, тому краще скористатися високорівневим софтом, побудованим на їх основі. Якщо ти працюєш у Linux або Mac OS X, то є інструмент під назвою apktool . Він дозволяє розпаковувати ресурси в оригінальний вигляд (у тому числі бінарні XML- та arsc-файли), перезбирати пакет із зміненими ресурсами, але не вміє підписувати пакети, так що запускати утиліту signer доведеться вручну. Незважаючи на те, що утиліта написана на Java, її установка досить нестандартна. Спочатку слід отримати сам jar-файл:
$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2
$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2
$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH
Якщо ж ти працюєш у Windows, то для неї є чудовий інструмент під назвою Virtuous Ten Studio, який також акумулює всі ці інструменти (включаючи сам apktool), але замість CLI-інтерфейсу надає користувачеві інтуїтивно зрозумілий графічний інтерфейс, за допомогою якого можна виконувати операції з розпакування, дизассемблювання та декомпіляції в кілька кліків. Інструмент цей Donation-ware, тобто іноді з'являються віконця з пропозицією отримати ліцензію, але це, зрештою, можна і зазнати. Описувати його не має сенсу, тому що розібратися в інтерфейсі можна за кілька хвилин. А ось apktool, внаслідок його консольної природи, слід обговорити докладніше.
![](https://i0.wp.com/xakep.ru/wp-content/uploads/2014/10/vts_import_file.jpg)
Розглянемо налаштування apktool. Якщо коротко, то є три основні команди: d(decode), b(build) та if(install framework). Якщо з першими двома командами все зрозуміло, що робить третя, умовний оператор? Вона розпаковує вказаний UI-фреймворк, який необхідний у тих випадках, коли ти препаруєш будь-який системний пакет.
Розглянемо найцікавіші опції першої команди:
- -s- не дизасемблювати файли dex;
- -r- не розпаковувати ресурси;
- -b- не вставляти налагоджувальну інформацію в результати дизасемблювання файлу dex;
- --frame-path- використовувати вказаний UI-фреймворк замість вбудованого в apktool. Тепер розглянемо пару опцій для команди b:
- -f- форсоване складання без перевірки змін;
- -a- вказуємо шлях до aapt (засіб для збирання APK-архіву), якщо ти з якоїсь причини хочеш використовувати його з іншого джерела.
Користуватися apktool дуже просто, для цього достатньо вказати одну з команд і шлях до APK, наприклад:
$apktool d mail.apk
Після цього в каталозі mail з'являться всі вилучені та дизассембльовані файли пакета.
Препарування. Відключаємо рекламу
Теорія – це, звичайно, добре, але навіщо вона потрібна, якщо ми не знаємо, що робити з розпакованим пакетом? Спробуємо застосувати теорію з користю собі, саме модифікуємо якусь софтину те щоб вона показувала нам рекламу. Для прикладу нехай це буде Virtual Torch – віртуальний смолоскип. Для нас ця софтина підійде ідеально, тому що вона під зав'язку набита дратівливою рекламою і до того ж досить проста, щоб не загубитися в нетрях коду.
![](https://i0.wp.com/xakep.ru/wp-content/uploads/2014/10/jd-gui_ad_search.jpg)
Отже, за допомогою одного з наведених способів завантажуй додаток з маркету . Якщо ти вирішив використовувати Virtuous Ten Studio, просто відкрий APK-файл у додатку та розпакуй його, для чого створи проект (File -> New project), потім у контекстному меню проекту вибери Import File. Якщо ж твій вибір припав на apktool, достатньо виконати одну команду:
$apktool d com.kauf.particle.virtualtorch.apk
Після цього у каталозі com.kauf.particle.virtualtorch з'явиться файлове дерево, схоже на описане у попередньому розділі, але з додатковим каталогом smali замість dex-файлів та файлом apktool.yml. Перший містить дизассембльований код виконуваного dex-файлу програми, другий - службову інформацію, необхідну apktool для складання пакета назад.
Перше місце, куди ми повинні заглянути, це, звичайно ж, AndroidManifest.xml. І тут ми відразу зустрічаємо наступний рядок:
Неважко здогадатися, що вона відповідає за надання додатку повноважень використання інтернет-з'єднання. По суті, якщо ми хочемо просто позбавитися реклами, нам, швидше за все, достатньо буде заборонити додатку інтернет. Спробуємо це зробити. Видаляємо вказаний рядок і пробуємо зібрати софтину за допомогою apktool:
$apktool b com.kauf.particle.virtualtorch
У каталозі com.kauf.particle.virtualtorch/build/ з'явиться результуючий файл APK. Однак встановити його не вийде, оскільки він не має цифрового підпису та контрольних сум файлів (у ньому просто немає каталогу META-INF/). Ми повинні підписати пакет за допомогою утиліти apk-signer. Запустили. Інтерфейс складається з двох вкладок – на першій (Key Generator) створюємо ключі, на другій (APK Signer) підписуємо. Щоб створити наш приватний ключ, заповнюємо такі поля:
- Target File- Вихідний файл сховища ключів; у ньому зазвичай зберігається одна пара ключів;
- Passwordі Confirm- пароль для сховища;
- Alias- ім'я ключа у сховищі;
- Alias passwordі Confirm- пароль секретного ключа;
- Validity- Термін дії (у роках). Значення за промовчанням оптимальне.
Інші поля, загалом, необов'язкові - але потрібно заповнити хоча б одне.
![](https://i1.wp.com/xakep.ru/wp-content/uploads/2014/10/apk_signer_key_generating.jpg)
WARNING
Щоб підписати програму за допомогою apk-signer, ти маєш встановити Android SDK і вказати повний шлях до нього в налаштуваннях програми.
Вся інформація надана виключно для ознайомлення. Ні редакція, ні автор не несуть відповідальності за будь-яку можливу шкоду, заподіяну матеріалами цієї статті.
Тепер цим ключем можна підписати APK. На вкладці APK Signer вибираємо щойно згенерований файл, вводимо пароль, аліас ключа та пароль до нього, потім знаходимо файл APK і сміливо тиснемо кнопку Sign. Якщо все пройде нормально, пакет буде підписано.
INFO
Так як ми підписали пакет нашим власним ключем, він конфліктуватиме з оригінальним додатком, а це означає, що при спробі оновити софтину через маркет ми отримаємо помилку.
Цифровий підпис необхідний лише сторонньому софту, тому якщо ти займаєшся модифікацією системних додатків, які встановлюються копіюванням у каталог /system/app/, підписувати їх не потрібно.
Після цього скидаємо пакет на смартфон, встановлюємо та запускаємо. Вуаля, реклама зникла! Замість неї, однак, з'явилося повідомлення, що ми не маємо інтернету або відсутні відповідні дозволи. За ідеєю, цього могло б і вистачити, але повідомлення виглядає дратівливо, та й, якщо чесно, нам просто пощастило з тупим додатком. Нормально написана софтина, швидше за все, уточнить свої повноваження або перевірить наявність інтернет-з'єднання і інакше просто відмовиться запускатися. Як бути у цьому випадку? Звісно, правити код.
Зазвичай автори додатків створюють спеціальні класи для виведення реклами та викликають методи цих класів під час запуску програми або однієї з його активностей (спрощено кажучи, екранів програми). Спробуймо знайти ці класи. Ідемо до каталогу smali, далі com (в org лежить тільки відкрита графічна бібліотека cocos2d), далі kauf (саме туди, тому що це ім'я розробника і там лежить весь його код) – і ось він, каталог marketing. Усередині знаходимо купу файлів із розширенням smali. Це класи, і найбільш примітний їх клас Ad.smali, за назвою якого неважко здогадатися, що він виводить рекламу.
Ми могли б змінити логіку його роботи, але набагато простіше буде тупо прибрати виклики будь-яких його методів із самого застосування. Тому виходимо з каталогу marketing і йдемо в сусідній каталог particle, а потім у virtualtorch. На особливу увагу тут заслуговує файл MainActivity.smali. Це стандартний для Android клас, який створюється Android SDK і встановлюється як точка входу в програму (аналог функції main в Сі). Відкриваємо файл для редагування.
Усередині знаходиться код smali (місцевий асемблер). Він досить заплутаний і важкий для читання через свою низькорівневу природу, тому ми не будемо його вивчати, а просто знайдемо всі згадки класу Ad в коді і закоментуємо їх. Вбиваємо рядок «Ad» у пошуку та потрапляємо на рядок 25:
Field private ad:Lcom/kauf/marketing/Ad;
Тут створюється поле ad для зберігання об'єкта класу Ad. Коментуємо за допомогою налаштування знака ### перед рядком. Продовжуємо пошук. Рядок 423:
New-instance v3, Lcom/kauf/marketing/Ad;
Тут відбувається створення об'єкта. Коментуємо. Продовжуємо пошук та знаходимо у рядках 433, 435, 466, 468, 738, 740, 800 та 802 звернення до методів класу Ad. Коментуємо. Наче все. Зберігаємо. Тепер пакет необхідно зібрати назад та перевірити його працездатність та наявність реклами. Для чистоти експерименту повертаємо віддалений з AndroidManifest.xml рядок, збираємо пакет, підписуємо та встановлюємо.
![](https://i2.wp.com/xakep.ru/wp-content/uploads/2014/10/virttorch_with_ad-157x280.jpg)
![](https://i0.wp.com/xakep.ru/wp-content/uploads/2014/10/virttorch_without_ad-157x280.jpg)
Оп-па! Реклама зникла лише під час роботи програми, але залишилася у головному меню, яке ми бачимо, коли запускаємо софтину. Так, зачекайте, але ж точка входу - це клас MainActivity, а реклама зникла під час роботи програми, але залишилася в головному меню, отже, точка входу інша? Щоб виявити дійсну точку входу, знову відкриваємо файл AndroidManifest.xml. І так, у ньому є такі рядки:
Вони говорять нам (і, що важливіше, андроїду) про те, що активність з ім'ям Start має бути запущена у відповідь на генерацію інтенту (події) android.intent.action.MAIN із категорії android.intent.category.LAUNCHER. Ця подія генерується при тапі на іконку програми в ланчері, тому вона визначає точку входу, а саме клас Start. Швидше за все, програміст спочатку написав програму без головного меню, точкою входу до якого був стандартний клас MainActivity, а потім додав нове вікно (активність), що містить меню та описане в класі Start, і вручну зробив його точкою входу.
Відкриваємо файл Start.smali і знову шукаємо рядок Ad, знаходимо в рядках 153 і 155 згадування класу FirstAd. Він теж є у вихідниках і, судячи з назви, таки відповідає за показ оголошень на головному екрані. Дивимося далі, йде створення екземпляра класу FirstAd та інтенту, що за контекстом має відношення до цього екземпляра, а далі мітка cond_10, умовний перехід на яку здійснюється якраз перед створенням екземпляра класу:
If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10
Швидше за все, програма якимось випадковим чином обчислює, чи потрібно показувати рекламу на головному екрані, і якщо ні, перескакує відразу на cond_10. Ок, спростимо їй завдання та замінимо умовний перехід на безумовний:
#if-ne p1, v0, :cond_10 goto:cond_10
Більше згадок FirstAd у коді немає, тому закриваємо файл і знову збираємо наш віртуальний факел за допомогою apktool. Копіюємо на смартфон, встановлюємо, запускаємо. Вуаля, вся реклама зникла, із чим нас усіх і вітаємо.
Підсумки
Ця стаття лише коротке введення в методи розкриття та модифікації Android-додатків. За кадром залишилося багато питань, таких як зняття захисту, розбір обфусцированного коду, переклад та заміна ресурсів програми, а також модифікація програм, написаних з використанням Android NDK. Однак, маючи базові знання, розібратися в цьому - лише питання часу.