apk 反编译后重新签名似乎总是有问题

2023-11-18 19:30:56 +08:00
 shanyang88

apk 反编译后移除了 META-INF 下的所有文件,然后用 apktool 重新打包,再重新签名,签名时也显示签名成功,但安装时始终提示签名不一至,改了 app_name 后还是如此。原安装卸载后还是如此。咋回事呢?用的 github 上的 uber-apk-signer-1.3.0.jar 进行的签名。 另:重新签名后的 apk 再反编译后,没了 META-INF 这个目录,但我看好像说 v2 签名不会生成 META-INF 。

9274 次点击
所在节点    Android
15 条回复
stinkytofu
2023-11-18 20:06:04 +08:00
你用的这个 apk 的原秘钥文件?
flyqie
2023-11-18 20:10:14 +08:00
你是要重打包后直接替换?

不可能实现,要是能实现的话安卓安全体系全崩了。
shanyang88
2023-11-18 20:13:22 +08:00
@flyqie 不是,app_name 我都改了自然不是要替换。我用我自己的证书签名,只需要安装时不报签名问题就行。
shanyang88
2023-11-18 20:13:45 +08:00
@stinkytofu 不是。当然是用的我自己的。
stinkytofu
2023-11-18 20:34:00 +08:00
你用的这个 apk 的原秘钥文件?
@shanyang88 #4 那你这不是搞笑么, 签名秘钥都是你自己的, 当然报签名不一至啊
felixlong
2023-11-18 21:07:28 +08:00
@shanyang88 XD 。区分 app 得是 AppId 不是 AppName 。你是不是对 Android 一点都不熟?
vcn8yjOogEL
2023-11-18 21:12:45 +08:00
签名本来就是为了防篡改, 你想做改版应该换内部 ID 才对
cyningxu
2023-11-18 21:14:37 +08:00
哈哈,确定改的是 appname 不是 pkgname ?
heIIokitty
2023-11-18 21:29:25 +08:00
只要你不是拿原 jks 签名打包,Android 系统是不会让你覆盖安装的,这个是系统层面验证的,你无法绕过去的,唯一标识不是靠 AppName 来判定的,是按 appid 来判定的,你 appid 不变,自然认为是同一个 app 。
stinkytofu
2023-11-18 21:50:19 +08:00
@heIIokitty #9 准确说应该是包名, 其实我也挺奇怪的, 楼主竟然会很多安卓开发者都不会的反编译然后重新打包的技能, 还能修改部分内容. 但是却连基本的签名机制都不懂, 就好像参加了中考, 却不会一次二次方程一样.
shanyang88
2023-11-19 15:20:28 +08:00
@felixlong 是不熟的,之前就没搞过。
Levox
2023-11-19 17:41:16 +08:00
你先卸载,重启后再安装看看
sunny352787
2023-11-19 20:11:06 +08:00
这是干啥呢?拿别人的 APK 过来然后改名重签名?你干的不像好事啊。是盗版还是黑产啊?
l4ever
2023-11-20 09:31:50 +08:00
原始版本->签名 1->安装 apk
你解包之后重签名, 确定用的是签名 1 的证书重新签的吗?
如果不是, 当然不能覆盖安装. 不然证书就失去了意义呀.

但是你可以卸载原始版本, 再安装你重签的版本.
heIIokitty
2023-11-20 09:46:51 +08:00
@stinkytofu #10 有可视化工具的,在 Github 上一大堆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/993101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX