Как да отворя APK и как да редактирам? Използване на apktool Програма за разглобяване и сглобяване на apk файл

Понякога някои приложения на Android не отговарят на потребителя по някакъв начин. Пример за това е натрапчивата реклама. И също така се случва програмата да е добра за всички, но преводът в нея е или крив, или напълно липсва. Или, например, програмата е пробна, но няма начин да получите пълната версия. Как да промените ситуацията?

Въведение

В тази статия ще говорим за това как да разглобим APK пакет с приложение, да разгледаме вътрешната му структура, да разглобим и декомпилираме байт кода, а също така ще се опитаме да направим няколко промени в приложенията, които могат да ни донесат една или друга полза.

За да направите всичко това сами, ще са ви необходими поне основни познания по езика Java, на който са написани приложенията за Android, и XML езика, който се използва навсякъде в Android - от описанието на самото приложение и правата му за достъп до съхраняването на низове, които ще се покаже на екрана. Ще ви е необходима и способност да използвате специализиран конзолен софтуер.

И така, какво е APK пакет, в който се разпространява абсолютно целият софтуер за Android?

Декомпилация на приложение

В тази статия работихме само с разглобен код на приложение, но ако се направят по-сериозни промени в големи приложения, разбирането на smali кода ще бъде много по-трудно. За щастие можем да декомпилираме dex кода в Java код, който, въпреки че не е оригинален и не е компилиран обратно, е много по-лесен за четене и разбиране на логиката на приложението. За да направим това, ще ни трябват два инструмента:

  • dex2jar е транслатор на Dalvik байткод в JVM байткод, на базата на който можем да получим код на езика Java;
  • jd-gui е самият декомпилатор, който ви позволява да получите четим Java код от JVM байт код. Като алтернатива можете да използвате Jad (www.varaneckas.com/jad); Въпреки че е доста стар, в някои случаи той генерира по-четлив код от Jd-gui.

Ето как трябва да се използват. Първо стартираме dex2jar, като посочим пътя до apk пакета като аргумент:

% dex2jar.sh mail.apk

В резултат на това пакетът Java mail.jar ще се появи в текущата директория, която вече може да бъде отворена в jd-gui, за да видите кода на Java.

Подреждане на APK пакети и получаването им

Пакетът с приложения за Android по същество е обикновен ZIP файл, който не изисква никакви специални инструменти за преглед на съдържанието или извличане. Достатъчно е да имате архиватор - 7zip за Windows или конзолен разархиватор на Linux. Но това е за обвивката. Какво има вътре? Като цяло имаме следната структура вътре:

  • МЕТА-ИНФ/- съдържа цифров сертификат на приложението, идентифициращ неговия създател и контролни суми на пакетните файлове;
  • res/ - различни ресурси, които приложението използва в работата си, като изображения, декларативно описание на интерфейса, както и други данни;
  • AndroidManifest.xml- описание на приложението. Това включва например списък с необходимите разрешения, необходимата версия на Android и необходимата разделителна способност на екрана;
  • classes.dex- компилиран байт код на приложението за виртуалната машина Dalvik;
  • ресурси.arsc- също ресурси, но от различен вид - по-специално низове (да, този файл може да се използва за русификация!).

Изброените файлове и директории са, ако не във всички, то може би в по-голямата част от APK файловете. Има обаче още няколко не толкова често срещани файла/директории, които си струва да се споменат:

  • активи- аналог на ресурсите. Основната разлика е, че за достъп до ресурс трябва да знаете неговия идентификатор, но списъкът с активи може да бъде получен динамично с помощта на метода AssetManager.list() в кода на приложението;
  • либ- собствени Linux библиотеки, написани с помощта на NDK (Native Development Kit).

Тази директория се използва от производителите на игри, които поставят там своите двигатели за игри, написани на C/C++, както и от създателите на високопроизводителни приложения (например Google Chrome). Разбрахме устройството. Но как да получите пакетния файл на приложението, което ви интересува? Тъй като не е възможно да вземете APK файлове от устройството без руут (те се намират в директорията /data/app), а руутването не винаги е препоръчително, има поне три начина да получите файла на приложението на вашия компютър:

  • Разширение за изтегляне на APK за Chrome;
  • Приложение Real APK Leecher;
  • различни файлови хостинг и варезници.

Кое да използвате е въпрос на вкус; предпочитаме да използваме отделни приложения, така че ще опишем използването на Real APK Leecher, особено след като е написано на Java и съответно ще работи или в Windows, или в Nix.

След като стартирате програмата, трябва да попълните три полета: Email, Password и Device ID - и да изберете език. Първите две са имейлът и паролата на вашия Google акаунт, който използвате на устройството. Третият е идентификаторът на устройството и може да бъде получен чрез въвеждане на кода на дайлера # #8255## и след това намиране на реда Device ID. Когато попълвате, трябва да въведете само ID без префикс android-.

След попълване и запазване често изскача съобщението „Грешка при свързване към сървър“. Няма нищо общо с Google Play, така че не се колебайте да го игнорирате и да потърсите пакети, които ви интересуват.

Преглед и промяна

Да приемем, че сте намерили пакет, който ви интересува, изтеглили сте го, разопаковали сте го... и когато сте се опитали да видите някакъв XML файл, сте били изненадани да откриете, че файлът не е текстов. Как да го декомпилирам и изобщо как да работя с пакети? Наистина ли е необходимо да инсталирате SDK? Не, изобщо не е необходимо да инсталирате SDK. Всъщност всички стъпки за извличане, модифициране и пакетиране на APK пакети изискват следните инструменти:

  • ZIP архиваторза разопаковане и опаковане;
  • малки- асемблер/разглобител на виртуална машина Dalvik (code.google.com/p/smali);
  • aapt- инструмент за опаковане на ресурси (по подразбиране ресурсите се съхраняват в двоична форма за оптимизиране на производителността на приложението). Включен в Android SDK, но може да се получи отделно;
  • подписващ се- инструмент за цифрово подписване на модифициран пакет (bit.ly/Rmrv4M).

Можете да използвате всички тези инструменти поотделно, но това е неудобно, така че е по-добре да използвате софтуер от по-високо ниво, изграден на тяхна база. Ако използвате Linux или Mac OS X, има инструмент, наречен apktool. Той ви позволява да разопаковате ресурси в оригиналната им форма (включително двоични XML и arsc файлове), да възстановите пакет с променени ресурси, но не знае как да подписва пакети, така че ще трябва да стартирате ръчно помощната програма за подписване. Въпреки факта, че помощната програма е написана на 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 интерфейс предоставя на потребителя интуитивен графичен интерфейс, с който можете извършване на операции за разопаковане, разглобяване и декомпилиране с няколко кликвания. Този инструмент е дарителски, т.е. понякога се появяват прозорци с молба да получите лиценз, но в крайна сметка това може да се толерира. Няма смисъл да го описвате, защото можете да разберете интерфейса за няколко минути. Но apktool, поради своята конзолна природа, трябва да бъде обсъден по-подробно.


Нека да разгледаме опциите на apktool. Накратко, има три основни команди: d (декодиране), b (изграждане) и if (инсталиране на рамка). Ако всичко е ясно с първите две команди, тогава какво прави третият, условен оператор? Той разопакова определената рамка на потребителския интерфейс, което е необходимо в случаите, когато анализирате всеки системен пакет.

Нека да разгледаме най-интересните опции на първата команда:

  • - не разглобявайте dex файлове;
  • - не разопаковайте ресурси;
  • - не вмъквайте информация за отстраняване на грешки в резултатите от разглобяването на dex файла;
  • --frame-path- използвайте указаната UI рамка вместо вградената в apktool. Сега нека да разгледаме няколко опции за командата b:
  • -f- принудително сглобяване без проверка на промените;
  • - посочете пътя до aapt (инструмент за изграждане на APK архив), ако по някаква причина искате да го използвате от друг източник.

Използването на apktool е много лесно, просто посочете една от командите и пътя до APK, например:

$ apktool d mail.apk

След това всички извлечени и разглобени файлове на пакета ще се появят в пощенската директория.

Подготовка. Деактивиране на рекламата

Теорията, разбира се, е добра, но защо е необходима, ако не знаем какво да правим с разопакования пакет? Нека се опитаме да приложим теорията в наша полза, а именно да модифицираме някакъв софтуер, така че да не ни показва реклама. Например, нека бъде Virtual Torch - виртуална факла. Този софтуер е идеален за нас, защото е пълен с досадна реклама и освен това е достатъчно прост, за да не се изгубим в джунглата на кода.


Така че, като използвате един от горните методи, изтеглете приложението от пазара. Ако решите да използвате Virtuous Ten Studio, просто отворете APK файла в приложението и го разархивирайте, създайте проект (Файл -> Нов проект), след което изберете Импортиране на файл в контекстното меню на проекта. Ако вашият избор падна върху 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

Полученият APK файл ще се появи в директорията com.kauf.particle.virtualtorch/build/. Въпреки това няма да е възможно да го инсталирате, тъй като няма цифров подпис и контролни суми на файлове (просто няма META-INF/ директория). Трябва да подпишем пакета с помощната програма apk-signer. Стартиран. Интерфейсът се състои от два раздела – на първия (Key Generator) създаваме ключове, на втория (APK Signer) подписваме. За да създадете нашия частен ключ, попълнете следните полета:

  • Целеви файл- изходен файл на хранилище за ключове; обикновено съхранява един чифт ключове;
  • ПаролаИ Потвърдете- парола за хранилището;
  • Псевдоним- име на ключа в хранилището;
  • Парола за псевдонимИ Потвърдете- секретен ключ парола;
  • Валидност- срок на валидност (в години). Стойността по подразбиране е оптимална.

Останалите полета по принцип не са задължителни, но поне едно трябва да бъде попълнено.


ВНИМАНИЕ

За да подпишете приложение с помощта на apk-signer, трябва да инсталирате Android SDK и да посочите пълния път до него в настройките на приложението.

Цялата информация е предоставена само за информационни цели. Нито редакторите, нито авторът носят отговорност за възможни вреди, причинени от материалите на тази статия.

Сега можете да подпишете APK с този ключ. В раздела APK Signer изберете новогенерирания файл, въведете паролата, псевдонима на ключа и паролата, след това намерете APK файла и щракнете смело върху бутона „Sign“. Ако всичко е наред, пакетът ще бъде подписан.

ИНФО

Тъй като подписахме пакета с наш собствен ключ, той ще бъде в конфликт с оригиналното приложение, което означава, че когато се опитаме да актуализираме софтуера през пазара, ще получим грешка.

Цифровият подпис се изисква само за софтуер на трети страни, така че ако променяте системните приложения, които са инсталирани, като ги копирате в директорията /system/app/, тогава не е необходимо да ги подписвате.

След това изтеглете пакета на вашия смартфон, инсталирайте го и го стартирайте. Воала, рекламата я няма! Вместо това обаче се появи съобщение, че нямаме интернет или нямаме съответните разрешения. На теория това може да е достатъчно, но съобщението изглежда досадно и, честно казано, просто извадихме късмет с глупаво приложение. Нормално написаният софтуер най-вероятно ще изясни идентификационните си данни или ще провери за интернет връзка и в противен случай просто ще откаже да стартира. Как да бъдем в този случай? Разбира се, редактирайте кода.

Обикновено авторите на приложения създават специални класове за показване на реклами и извикване на методи на тези класове, когато приложението или една от неговите „дейности“ (просто казано, екрани на приложението) се стартира. Нека се опитаме да намерим тези класове. Отиваме в директорията smali, след това com (org съдържа само отворената графична библиотека cocos2d), след това kauf (това е мястото, защото това е името на разработчика и целият му код е там) - и ето го, маркетинговата директория. Вътре намираме куп файлове с разширение smali. Това са класове, като най-забележителният от тях е класът Ad.smali, от чието име е лесно да се познае, че той е този, който показва реклама.

Можем да променим логиката на работата му, но би било много по-лесно просто да премахнем повикванията към някой от неговите методи от самото приложение. Затова напускаме маркетинговата директория и отиваме в съседната директория на частиците, а след това във virtualtorch. Файлът MainActivity.smali заслужава специално внимание тук. Това е стандартен Android клас, който се създава от Android SDK и се инсталира като входна точка към приложението (аналогично на основната функция в C). Отворете файла за редактиране.

Вътре има smali код (местен асемблер). Той е доста объркващ и труден за четене поради естеството си на ниско ниво, така че няма да го изучаваме, а просто ще намерим всички препратки към класа Ad в кода и ще ги коментираме. Въвеждаме реда „Реклама“ в търсенето и стигаме до ред 25:

Поле частна обява:Lcom/kauf/marketing/Ad;

Тук се създава рекламно поле за съхраняване на обект от клас реклама. Коментираме с поставяне на знак ### пред реда. Продължаваме търсенето. Ред 423:

Нова инстанция v3, Lcom/kauf/marketing/Ad;

Това е мястото, където се създава обектът. Нека коментираме. Продължаваме търсенето и откриваме в редове 433, 435, 466, 468, 738, 740, 800 и 802 извиквания към методи от класа Ad. Нека коментираме. Изглежда, че това е всичко. Запазване. Сега пакетът трябва да се сглоби отново и да се провери за функционалност и наличие на реклама. За чистотата на експеримента връщаме премахнатия ред от AndroidManifest.xml, сглобяваме пакета, подписваме го и го инсталираме.

Нашето морско свинче. Вижда се реклама

Опа! Рекламата изчезна само докато приложението работи, но остана в главното меню, което виждаме, когато стартираме софтуера. И така, изчакайте, но входната точка е класът MainActivity и рекламата изчезна, докато приложението работеше, но остана в главното меню, значи входната точка е различна? За да идентифицирате истинската входна точка, отворете отново файла AndroidManifest.xml. И да, съдържа следните редове:

Те ни казват (и, което е по-важно, android), че дейност с име 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. Въпреки това, като имате основни познания, е само въпрос на време да разберете всичко.

От тази статия ще научите от какво се състои приложението за Android, как да отворите APK файл и с какви програми.

Какво е APK файл?

APK е формат на операционната система Android, използван за архивирани изпълними файлове на приложения, а името на самия файл може да бъде произволно, но разширението трябва да изглежда само така.apk. Аналозите на APK в други операционни системи са .msi в Windows, .sis в Symbian, .rpm или .deb в Linux.

Да видим какво има вътре
Всъщност .apk е ZIP архив, така че можете да разгледате вътрешното устройство с помощта на всеки файлов мениджър или архиватор, например WinRAR или мобилното приложение X-plore.




Струва си да запомните, че получавате само визуален достъп до вътрешни ресурси; възможностите за редактиране са изключително ограничени.

Нека да разгледаме структурата
Вътре в .apk виждаме редица файлове и папки, нека да разберем за какво служат:

  • AndroidManifest.xml е един вид „паспорт“ на приложението, от който можете да разберете всички основни точки, изисквания, версия, разрешения и т.н.
  • META-INF този файл съдържа метаданни, тоест данни за данни, контролни суми, пътища към данни, пътища и контролни суми на ресурси, сертификати. Можете да отворите този файл с всеки текстов редактор, но се препоръчва да използвате Notepad++.
  • Папката res съдържа всички програмни ресурси, графики, като икони, картини, текст и елементи на графичния интерфейс. Можете също така лесно да получите достъп до папката.
  • classes.dex е директният приложен програмен код, изпълняван от виртуалната машина Dalvik; можете да видите какво има вътре в този файл само чрез декомпилиране на .apk; resources.arsc - компилиран XML файл, този файл съдържа данни за всички ресурси, включени в програмата.
  • lib - папка с родни библиотеки, ресурсите на които могат да бъдат достъпни само при използване на специализирани програми. Също така в APK може да има такива файлове и папки като com, org, udk, но не винаги.

Сега нека разгледаме по-подробно вътрешната структура; за това се нуждаем от програма за декомпилиране, Java и APK файл. Основният инструмент за разглобяване на .apk е Apktool, но тази програма работи само от линията, което не е много удобно. За по-бърз и удобен анализ можете да използвате APKing, това все още е същият Apktool, но с възможност за работа от контекстното меню.


И така, ние инсталираме APKing като всяко приложение за Windows и след като сме избрали .apk, щракнете върху него с десния бутон на мишката и Shift едновременно, след което ще видим следното:



И изберете необходимото действие, например декомпилирайте напълно, след което програмата ще завърши операцията и ще създаде папка със същото име.



Отваряйки папката ще имаме достъп до всички ресурси на APK файла.



Сега всички текстови файлове могат да бъдат редактирани, като спазвате основните правила, можете да използвате популярната програма Notepad++, например, помислете за AndroidManifest.xml

Споменах приложението SmartAPKTool. Може да извлича, компресира и подписва модифицирани apk файлове. Предимството му е наличието на графичен интерфейс. Има обаче един сериозен недостатък. SmartAPKTool не е актуализиран от дълго време и програмата не разопакова правилно и опакова приложенията за най-новите версии на Android. Затова тук ще се опитам да обясня как да използвате приложението за тези цели apktool.

Бележка 1.
Програмата SmartAPKTool все още е удобна за използване за подписване на събрани apk файлове.
Бележка 2.
Връзките към програмите, споменати в статията, са ↓

програма apktoolняма графичен интерфейс. Това е недостатък за тези, които не са свикнали да работят с командния ред. Но има и плюс: за разлика от SmartAPKTool, ние ще видим всички грешки, което означава, че ще знаем какво да коригираме.

Нека изтеглим два архива: един общ за всички системи, а другият за нашата система (Windows в примера):

Нека разопаковаме двата архива в една и съща празна папка (в нашия пример C:\apktool\). Съдържанието му трябва да изглежда така:

Отсега нататък можем да използваме програмата apktool.

Забележка 3.
Потребителите на 64-битови версии на Linux ще трябва да инсталират пакета ia32-libs:

sudo apt-get инсталирайте ia32-libs

В същата папка поставяме файла, който трябва да разопаковаме. Например, нека се казва orig.apk
Натиснете и задръжте клавиша Shift и щракнете с десния бутон върху всяко празно място в папката (не щракайте върху файлове!). След това изберете „Отваряне на командния прозорец“. В конзолата, която се показва, въведете:

apktool декодира orig.apk

Файлът ще бъде разопакован:

Сега имаме папка с разопакованото приложение в директорията C:\apktool\. Нарича се по същия начин като изходния файл, без разширението: C:\apktool\orig\ . Можем да променим изходните файлове, както е описано в статията Android: как да инсталирате две еднакви приложения на един телефон. След като направим промените, ще съберем копие на приложението, като опаковаме изходните файлове в apk:

apktool компилация orig result.apk

Тук result.apk е името на файла, който измислихме за изграждането на копието. Ако няма грешки, файлът ще бъде сглобен:

Останалото е извън обхвата на статията:

  1. Ако има грешки по време на монтажа, трябва да намерите причината за тях и да ги коригирате.
  2. Остава само да подпишете получения файл result.apk. Това може да стане с помощта на SmartAPKTool, както е споменато по-горе; Всичко в него е интуитивно. Има и други начини за подписване на apk файл.
  3. Грешки могат да възникнат и при инсталиране на копие, по време на неговото стартиране или работа. Те трябва да бъдат уловени с помощната програма adb, включена в Android SDK.

Трябва да подпишете приложението, в противен случай то няма да се инсталира. Грешките не се срещат толкова често и най-честите проблеми, които ги причиняват, са описани в статията

В процеса на използване на различни фърмуери за устройства с Android понякога става необходимо да промените по един или друг начин системните приложения, вградени в операционната система. В този материал ще разгледаме този въпрос подробно.

Естествено, трябва да разглобите и сглобите отново системния APK файл, така че да работи правилно и стабилно. Нека да разберем стъпка по стъпка какво трябва да се направи за това.

Първо, трябва да извършите процеса на деодексиране на системни APK файлове. Ще ви кажем как да направите това в.

И така, .apk файлът беше деодексиран и декомпилиран. Нека анализираме приложението, което ни интересува, нека има име, за яснота на примера, рамка- рез. apk. Помним го в главите си като оригиналното приложение.

Да кажем, че сме направили всички необходими промени в приложението. Ще говорим повече за всички аспекти на APK файловете в. Сега трябва да го опаковате обратно. Нека си спомним завършеното пакетирано приложение в съзнанието си като модифицирано приложение 2.

Сега ще обясним защо е необходимо мислено да запомните приложенията като оригинални и модифицирани 2. Приложението, компилирано от програмата ApkTool (или с помощта на разширение за графичен потребителски интерфейс като SmartApkTool), няма да работи, но това не е проблем. Извършваме следните действия:

Събирането на такива файлове обратно в APK е доста лесно. За да направите това, трябва да стартирате apktool със съответния флаг за компилация и да му предадете пътя до папката с декомпилираното приложение вътре. Например, ако имаме папка с приложения, която се намира в същата директория като apktool, тогава командата ще изглежда така:

Черупка

java -jar apktool.jar b приложение

java - jar apktool .jar b приложение

След сглобяването готовият APK файл ще бъде разположен в директорията приложение/компилация. След това трябва да подпишете APK. Това се прави, за да се гарантира, че приложението работи на устройства, където отстраняването на грешки е забранено. Тоест стартирането на неподписани приложения на такива устройства е забранено. Можете да прочетете повече за цифровите сертификати и процедурата за подписване на файлове тук.

Подписването на файл е много просто: има специална помощна програма за това, наречена signapk. Той трябва да бъде стартиран, като първо подадете сертификатите като аргументи, след това пътя до приложението и накрая пътя за подписаното приложение (резултатът, къде да го запишете). Изглежда нещо подобно:

Черупка

java -jar signapk.jar testkey.x509.pem testkey.pk8 *.apk apk_signed.apk

java - jar signapk .jar testkey .x509 .pem testkey .pk8 * .apk apk_signed .apk

Откъде можете да получите такъв сертификат, ще попитате? Сертификатите могат да бъдат намерени в интернет. Или го генерирайте сами. Подробни инструкции за настройка и генериране на всички необходими файлове можете да намерите, например, .

Заключение

Както можете да видите, декомпилирането и асемблирането на APK файлове е доста прост процес, който освен това може да бъде автоматизиран, което улеснява работата на изследователя. Самата виртуална машина Dalvik също е лесна за научаване и отваряне, което, от една страна, намалява бариерата за навлизане на разработчиците, от друга страна, е основната причина за толкова голям процент пиратство на платформата Android. Отчасти това е причината разработчиците на игри, например, като цяло да не се интересуват от пускането на интересни игри със сюжет. Много по-изгодно е, като се има предвид сегашното отношение на потребителите, да се занитват ферми с дарения, които са поразително сходни едно с друго. Затова купуваме приложения, поддържаме разработчици и в резултат на това получаваме интересно съдържание. Но няма абсолютно никаква нужда да дарявате!

Благодаря на всички, до нови срещи.

  • Раздели на сайта