小编Dan*_*ser的帖子

如何在由 apktool 反编译的应用程序中为可绘制对象添加新的资源标识符?

我正在尝试将图像视图注入到反编译的 apk 的 smali 代码中。但是 imageview 使用的 drawable 需要它自己唯一的资源标识符。到目前为止,我没有成功添加新的资源标识符而没有从 apktool 中获取构建错误。任何帮助将不胜感激。以下是我采取的步骤:

第1步:

在 public.xml 文件中找到最后一个资源 ID。就我而言:<public type="menu" name="search_item_minioverflow" id="0x7f0d0003" />

将 id 从十六进制转换为文本,这给了我以下内容:2131558403。将数字增加 1 并将其转换回十六进制:0x7f0d0004

第2步:

将带有递增 id: 的新资源粘贴<public type="drawable" name="cross" id="0x7f0d0004" />到 public.xml 文件中。

第 3 步:

将带有递增 id: 的新静态字段粘贴.field public static final cross:I = 0x7f0d0004到 R$drawable.smali 文件中。

最后:

我尝试使用 apktool 构建反编译的 apk,但收到以下构建错误:

res\values\public.xml:986: error: Public resource drawable/cross has conflicting type codes for its public identifiers (0x2 vs 0xd). …
Run Code Online (Sandbox Code Playgroud)

android smali android-resources android-drawable

1
推荐指数
1
解决办法
1187
查看次数