TelephonyManger.getDeviceId () Возвращает уникальный идентификатор устройства, например IMEI для GSM и MEID или ESN для телефонов CDMA.
final TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String myAndroidDeviceId = mTelephony.getDeviceId();
Но я рекомендую использовать:
Settings.Secure.ANDROID_ID, который возвращает идентификатор Android в качестве уникальной 64-разрядной шестнадцатеричной строки.
String myAndroidDeviceId = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
Иногда TelephonyManger.getDeviceId () возвращает null, поэтому для обеспечения уникального идентификатора вы будете используйте этот метод:
public String getUniqueID(){
String myAndroidDeviceId = "";
TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (mTelephony.getDeviceId() != null){
myAndroidDeviceId = mTelephony.getDeviceId();
}else{
myAndroidDeviceId = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
}
return myAndroidDeviceId;
}
Простой способ: использовать онлайн-инструмент http://www.javadecompilers.com/apk , загрузить apk и получить исходный код.
Процедура для декодирования .apk файлов, шаг за шагом:
d2j-dex2jar classes.dex
(для терминала mac или ubuntu write ./d2j-dex2jar.sh classes.dex
) и нажмите enter. Теперь у вас есть файл classes.dex.dex2jar в той же папке. Теперь откройте еще одну новую папку
apktool if framework-res.apk
и следующую apktool d myApp.apk
(где myApp.apk обозначает имя файла, которое вы хотите декодировать) теперь вы получаете папку с файлами в этой папке и можете легко прочитать XML-файлы apk.
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае и новую папку) в один файл
и наслаждайтесь источником код ...
Есть несколько способов сделать это:
$ apktool d test.apk
I: Using Apktool 2.2.4 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: 1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
$ apktool b test
I: Using Apktool 2.2.4 on test
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...
apktool - это путь. Интернет-служба apktool существует также: http://www.javadecompilers.com/apktool
Некоторые ограничения, очевидно, существуют из-за службы «онлайн-характер»: вы можете извлечь и исследовательские активы и файл манифеста, но невозможно перекомпилировать приложение на данный момент.
Тем не менее, это беспроблемный способ «открыть» приложение для Android.
Apktool для обратной инженерии сторонних, закрытых, бинарных приложений для Android.
Он может декодировать ресурсы до почти первоначальной формы и восстанавливать их после внесения некоторых изменений.
Это позволяет отлаживать smali-код шаг за шагом. Кроме того, упрощается работа с приложением из-за проектной структуры файла и автоматизации некоторых повторяющихся задач, таких как создание apk и т. Д.
Это альтернативное описание - на случай, если кто-то застрял с описанием выше. Выполните следующие шаги:
apktool.bat
(или apktool
для Linux) и apktool_<version>.jar
из http://ibotpeaches.github.io/Apktool/install/ apktool.jar
и поместите оба файла в одну и ту же папку cmd.exe
) и перейдите в эту папку; убедитесь, что установлена среда Java (для Linux также проверьте заметки относительно необходимых библиотек) apktool decode [apk file]
Промежуточный результат : файлы ресурсов, AndroidManifest.xml
classes.dex
dex2jar-0.0.9.15.zip
из http://code.google .com / p / dex2jar / downloads / detail? name = dex2jar-0.0.9.15.zip & amp; can = 2 & amp; q = classes.dex
на dex2jar.bat
(или введите <path_to>\dex2jar.bat classes.dex
в поле DOS, для Linux используйте dex2jar.sh
) Промежуточный результат : classes_dex2jar.jar
classes_dex2jar.jar
(может быть необязательным в зависимости от используемого декомпилятора) Примечание: не разрешается декомпилировать пакеты сторонних поставщиков; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, полученный код, скорее всего, будет запутан
В Play Store есть новое приложение, с помощью которого можно декомпилировать apk (системные приложения) и просмотреть исходный код прямо на вашем смартфоне. Он сохраняет файлы на SD-карте, чтобы вы могли просматривать их на своем компьютере. Это не требует root или что-то еще.
Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.
Я лично рекомендую Show Java Android App получить исходный код. Вы можете загрузить его из магазина воспроизведения или из здесь
Я покажу вам другой способ декомпилировать файлы .apk.
Вы можете выполнить первые 2 шага от «prankul garg». Итак, у вас есть еще одна возможность:
Шаг 3 ':
Загрузите «JD-GUI», который легко найти. Откройте файл .jar в «jd-gui.exe». (Файл> Открыть файл> 'нашел ваш .jar-файл'). После этой процедуры вы можете сохранить все ресурсы в файле .zip.
Итак,
1st - вам нужно переименовать файл .apk в .zip
2nd - вам нужно декодировать файл .dex (если хотите, декодировать файл .apk в dex2jar, это возможно)
3rd - вам нужно декодировать файл .jar с JD-GUI
Вы можете попробовать DexPatcher . Он даже интегрируется с Android Studio. Он использует внутренние функции Apktool и Dex2Jar . Вы также можете использовать эти инструменты самостоятельно. Apktool декомпилирует apk и извлекает файлы .dex, которые могут быть затем преобразованы в jar с использованием Dex2Jar. Jar можно декомпилировать с помощью JD-GUI . Вы можете увидеть Java-код с помощью этого инструмента. Хотя сходство декомпилированного кода с реальным кодом не может быть гарантировано. На рынке доступны некоторые усовершенствованные инструменты [f5] obfuscation , которые испортили код, чтобы затруднить декомпиляцию / понимание. например. Proguard
Этот сайт https://www.apkdecompilers.com/ сделал это автоматически.
Сначала я попробовал сайт, упомянутый в принятом ответе, но это не сработало я.
apktool - лучшее, что вы можете попробовать. Я сохранил некоторые xml с ним, но, честно говоря, я не знаю, как это будет работать с кодом .java.
Я бы рекомендовал вам иметь репозиторий кода, даже если ваш единственный кодер. Я использовал Project Locker для своих собственных проектов. Это дает вам бесплатные svn и git repos.
apktool будет работать. Вам даже не нужно знать хранилище ключей, чтобы извлечь исходный код (что немного страшно). Основной недостаток заключается в том, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и main.xml, проходят отлично, хотя, возможно, стоит потратить время, чтобы хотя бы восстановить их. В конечном итоге вам, скорее всего, придется перезаписать Java-код с нуля.
Здесь вы можете найти apktool здесь . Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.
Хотя вы можете декомпилировать ваш файл APK
, вы, вероятно, попадете в одну большую проблему:
он не вернет код, который вы написали. Вместо этого он будет возвращать все, что встраивается компилятором, с переменными, заданными случайными именами, а также функциями, заданными случайными именами. Это может занять значительно больше времени, чтобы попытаться декомпилировать и восстановить его в коде, который у вас был, чем начать.
К сожалению, такие вещи убили много проектов. В будущем я настоятельно рекомендую изучить систему управления версиями, такую как CVS, SVN и git и т. Д.
и как ее создать.
В этих двух статьях описывается, как объединить использование apktool
и dex2jar
, чтобы взять файл APK
и создать проект Eclipse, который может его создавать и запускать.
http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html
http://blog.inyourbits.com/2012 /12/extending-existing-android-applications.html
blockquote>В основном вы:
- Используйте
apktool
, чтобы получить файлы ресурсов из apk- Используйте
dex2jar
для получения файла jar, который содержит классы в формате, который понравится Eclipse.- Создайте проект Eclipse, укажите его в файлах ресурсов и новый файл jar
- Откройте файл jar с помощью утилиты zip и удалите существующие ресурсы
- Откройте файл jar с помощью
JDGui
, чтобы просмотреть исходный код- Возьмите любой исходный код, который вам нужен из
JDGui
, вставьте его в класс внутри Eclipse и измените его- Удалите этот класс из файла jar (так что у вас нет одного и того же класса, определенного в несколько раз s)
- Запустить его.
Ниже инструмента ONLINE:
http://www.javadecompilers.com/apk
он делает ВСЕ одним щелчком мыши: декомпилированные .java-файлы + resources + xml (в одном .zip-файле) с очень хорошим декомпилятором (jadx возвращает java-код в местах / функциях, где другие компиляции возвращают комментарии внутри функции, такие как «неспособность декомпилировать» или какой-либо ассемблер / машинный код Android)
Может быть легко увидеть источник:
В студии Android 2.3, Build -> Analyze APK -> Select the apk that you want to decompile
. Вы увидите исходный код.
Linf для справки: https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2