对象是某个海外联网手游,需要用到他们的旧版本。但是现在一打开就提示我要更新版本不然不给进。
搜了下网络上的方法,按照教程改掉了 apktool.yml 和"original/AndroidManifest.xml"下的 versionCode 和 versionName,重新打包回去安装后系统自带的应用信息里确实显示是我要改的版本,但是打开软件后发现里面显示的还是旧版本号而不是新版本。
所以安卓 U3D 类的应用是除了这两个地方外还有其他能硬编码版本号的地方吗? 想问下各位像这种情况有什么解决办法吗?
行吧,事实证明他们就是这么无聊。 在“Assembly-CSharp.dll”里有个方法把每次的版本号都硬编码了。具体改的方法可以参考这个 https://zhuanlan.zhihu.com/p/32468958
([https://zhuanlan.zhihu.com/p/3246895 "安卓U3D逆向从Assembly-CSharp到il2cpp") 太长时间没用MD手生了。更改下上面那个append的小错误
安卓U3D逆向从Assembly-CSharp到il2cpp append内容预览不了又不能修改。头疼。
1
donething 2019-05-11 03:26:34 +08:00 2
全局搜索你当前的版本号,试试
|
2
TakanashiAzusa OP @donething 谢谢,不过 apktool 反编译的文件夹里搜索版本号的结果太多了。。我其实是有点怀疑会不会是他们给写到 dll 文件里去了,不过这方面实在也没什么经验,所以。。
|
3
hugebug 2019-05-11 04:17:22 +08:00 via Android 1
开发的时候是在 app 下的 build.gradle 下改版本号
|
4
TakanashiAzusa OP |
5
zhilincom 2019-05-11 08:33:27 +08:00 via Android
dll ??什么时候安卓可以执行 windows 的动态链接库了?
|
7
qianji201712 2019-05-11 09:31:03 +08:00 via Android
其实有一个楼主不知道的事实就是,很多 Android app 不用 AndroidManefest.xml 里面的版本号,为什么呢?因为常见的各种应用市场抓包问题,会导致一个渠道的 Apk,被其他几个渠道抓过去使用。
版本号其实就是一个数字,自己在 Apk 里面定义一个变量就好,每次发版看情况更改这个变量就好,当然 AndroidManefest 里面的版本号,也是在维护的,等于有对内、对外两个版本号 |
8
kevinlm 2019-05-11 09:33:54 +08:00 via iPhone
应该是硬编码写死一个数字的。极少数用项目本身的版本号
|
9
TakanashiAzusa OP @qianji201712 其实我没懂这个如何应对渠道抓包问题呢?意思是对内对外不一样的版本号吗
|
10
LimeVista 2019-05-11 14:40:59 +08:00 via Android
一般做 App 会有个动态的数据结构(架构)版本号,用做升级数据,写在配置或数据库里面,至少还有一个或多个写死的当前版本号。并不会直接使用 app 自身的版本号,多渠道分发的时候弊端就出来了。
|
12
alfchin 2019-05-11 15:00:29 +08:00 via Android
这种是服务端验证的,本地改了也未必能用
|