невозможно перепаковать файлы смали код ошибки: apktool недопустимое литеральное значение 16 бит должны быть обнулены.
какое значение регистра следует использовать вместо "" const/high16 v4 "" "с замененным значением 0x7f04006a
.line 11
move-object v3, v0
move-object v4, v1
invoke-super {v3, v4}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 12
move-object v3, v0
const/high16 v4, 0x7f030000
invoke-virtual {v3, v4}, Lcom/mycompany/myapp/MainActivity;->setContentView(I)V
return-void
метод .end
Мой открытый идентификатор: <public type="layout" name="main" id="0x7f04006a"/>
Инструкция const/high16
принимает 16-битный литерал, сдвигает его влево на 16 бит и загружает в указанный регистр.
Синтаксис smali для этой инструкции использует литеральное значение после смещения. Таким образом, в вашем примере const/high16 v4, 0x7f030000
, в необработанном байт-коде фактический буквальный аргумент инструкции будет 0x7f03
. Но в синтаксисе smali он указывается в виде пост-сдвинутой формы: 0x7f030000
. Поскольку это пост-сдвинутая форма, последние 4 шестнадцатеричных цифры всегда должны быть 0.
Если вы хотите загрузить литеральное значение, которое не соответствует этим требованиям, вы должны использовать другую инструкцию, например, инструкцию const
.
const v4, 0x7f04006a