如何解决使用 apktool 重新编译后 SystemUI.apk 出现问题+edit 15.01.21
*编辑和添加:
我发现在我重新编译 systemui.apk 后,KeyguardLockSecureIconView.smali
中的代码发生了变化,其中一些代码消失了:
1) in "const v0,0x7f0a02f6 ### <public type =" id "name =" lock_secure_icon_src "id =" 0x7f0a02f6 "/>"
I have only:
"const v0,0x7f0a02f6"
there is no:
"### <public type =" id "name =" lock_secure_icon_src "id =" 0x7f0a02f6"/>"
2) in "if-eqz v3,: cond_next"
I got:
"if-eqz v3,: cond_0"
3) in ": cond_next"
I got:
": cond_0"
我正在使用 apktool 并使用命令:
apktool d SystemUI.apk
apktool b SystemUI
也许需要使用其他命令?
我用记事本++编辑.smali文件。
重新编译systemui.apk后这三行有什么变化吗?
*编辑结束
我有 root note 8 运行 deluxe rom-pie,我尝试为锁定屏幕上的锁定图标着色。用apktool反编译和重新编译SystemUI.apk后,我没有锁屏,没有状态栏,没有导航栏,没有重启菜单。 我想知道它是否会发生,因为我移动重新编译 systemui.apk 的方式(从手机复制过去并重新启动)或者它与我所做的代码和更改有关? 这就是我所做的(遵循其他网站的指南),我希望有人能指导我做错了什么:
-
安装
framework-res.apk
-
反编译
SystemUI.apk
-
在
systemui-smali_classes2-com-android
中,创建wubydax文件夹并放入:GearContentObserver$OnContentChangedListener.smali
GearContentObserver.smali
GearDeviceInfo.smali
GearUtils.smali
IdUtils.smali
-
在
systemui-smali_classes2-com
中,创建首选项文件夹并放入:SettingsHelper.smali
-
在
SystemUI/smali_classes2/com/android/systemui/statusbar/phone/KeyguardLockSecureIconView.smali
方法中.method public onFinishInflate() V,我需要将语言环境的数量从 1 增加到 5 并添加以下行:
.method public onFinishInflate () V .locals 5
invoke-super {p0},Landroid / widget / FrameLayout; -> onFinishInflate () V
const v0,0x7f0a02f6 ### <public type = "id" name = "lock_secure_icon_src" id = "0x7f0a02f6" />
invoke-virtual {p0,v0},Lcom / android / systemui / statusbar / phone / KeyguardLockSecureIconView; -> findViewById (I) Landroid / view / View;
move-result-object v0
check-cast v0,Lcom / android / systemui / widget / SystemUIImageView;
const-string / jumbo v3,"lock_secure_icon_color_enable"
const v4,0x0
invoke-static {v3,v4},Lcom / android / wubydax / GearUtils; -> getDbIntForKey (Ljava / lang / String; I) I
move-result v3
if-eqz v3,: cond_next
const-string v1,"lock_secure_icon_color"
const v2,-0xf0f0f1
invoke-static {v1,v2},Lcom / preference / SettingsHelper; -> getIntofSettings (Ljava / lang / String; I) I
move-result v1
sget-object v2,Landroid / graphics / PorterDuff $ Mode; -> SRC_IN: Landroid / graphics / PorterDuff $ Mode;
invoke-virtual {v0,v1,Lcom / android / systemui / widget / SystemUIImageView; -> setColorFilter (ILandroid / graphics / PorterDuff $ Mode;) V
: cond_next iput-object v0,p0,Lcom / android / systemui / statusbar / phone / KeyguardLockSecureIconView; -> mIconImage: Lcom / android / systemui / widget / SystemUIImageView;
return-void
.end method
KeyguardLockSecureIconView.smali 中的原始代码是这样的:
# virtual methods
.method public onFinishInflate()V
.locals 1
invoke-super {p0},Landroid/widget/FrameLayout;->onFinishInflate()V
const v0,0x7f0a02f6
invoke-virtual {p0,Lcom/android/systemui/statusbar/phone/KeyguardLockSecureIconView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0,Lcom/android/systemui/widget/SystemUIImageView;
iput-object v0,Lcom/android/systemui/statusbar/phone/KeyguardLockSecureIconView;->mIconImage:Lcom/android/systemui/widget/SystemUIImageView;
return-void
.end method
而且我不知道如何放置代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。