All streams
Search
Write a publication
Pull to refresh
106
Дима Коваленко @dimakovalenkoread⁠-⁠only

User

Send message
Так оно и есть. Apk-tools генерируют новую отладочную информацию, ну а android:debuggable=true мы сами уже добавляем, руками. Метод конечно… как гланды удалять через не предназначенное для это отверстие ниже спины. Но более толкового способа сделать отладку без сорцов пока что не нашел. Если что-то знаете по этому поводу — пишите в комментарии, добавлю в конец статьи как альтернативу изложенному с статье методу.
Отладчик выглядит странно. Мы имеем NetBeans что-то вроде

package ch.racic.android.marketenabler; class ExecReceiver {/*
а тут у нас инструкции Dalvik в формате ассемблера Smali
*/


Т.е. класс ExecReceiver фактически пустой с точки зрения языка Java, все инструкции Dalvik — внутри одного большого комментария. Но тем не менее NetBeans может выполнять эти инструкции внутри комментария одна за другой. Одна инструкция Dalvik за один шаг отладки. И после каждого шага можно просмотреть значение полей, локальных регистров и т.п.

Поначалу это смотрится немного странно, потом как-то привыкаешь.
Спасибо за позитивный отзыв.

Увы, пока что простого способа не нашел. Насколько я знаю, нельзя вот так просто взять и скомандовать по JDWP приложению: «А ну стой! Какую инструкцию виртуальной машины Dalvik сейчас выполняешь? Какие значения переменных? Сколько солдат в твоем отряде потоков в приложении?»

Поэтому приходится извращаться. Пересборка с опцией -d нужна
(1) для того что бы добавить отладочную информацию в пакет, соответствие «инструкция Smali — строка в исходном коде», ну и получить сам исходный код
(2) а также выставить android:debuggable=«true».

Без (1) и (2) этого отладка к сожалению «не заводится».
Спасибо за ваш отзыв.

Этот способ интересен в основном для reverse engineers — например для вирусных аналитиков или хакеров. Иногда этот способ полезен в ситуации «есть приложение, а исходники и документацию потеряли, разрабы уволились — теперь надо хотя бы примерно понять как оно там внутри работает». Хотя такое редко бывает конечно.
12 ...
31

Information

Rating
Does not participate
Location
Украина
Registered
Activity