美好的一天。 很久以前我问过关于动态修改apk的问题,我想要实现的是通过一些跟踪调用来跟踪从下载到卸载的ak。
首先,当然是要找到一些方式来品牌"在用户通过手机下载之前。
建议中要注意的事项是: 我不会使用普通商店给人们apk。 我无法让用户在下载过程中等待30秒,以便即时进行构建。 我不能要求用户注册或登录"我无法到达服务器那个部分,太糟糕了。
到目前为止,我只是猜测即时修改apk代码,在其代码中搜索模式,并根据我的需要进行更改并将其保存在数据库中。
例如,假设在values.xml中有一个这样的URL: www.server.com?token=xxxxxxxxxxxxxxx
在将apk发送给用户之前,我搜索模式xxxxxxxxxxxxxxx
并使用我保存在db上的字母数字值进行更改,之后,当用户通过apk转到url时,他会带来令牌值,我可以继续一次又一次地追踪他......
好的,这就是情况..我的问题很简单...... 任何想法?我疯了吗?有人已经没有任何努力就这样做了,我试着重新发明轮子吗?
答案 0 :(得分:3)
你无法修改apk,它会打破签名。 你需要辞职。如果您能够重新签名,则可以轻松更改所选xml文件中的值。
使用bash脚本很容易实现。
#!/bin/sh
sed -i ‘s/replace_key/actual_key/’ app/src/main/res/values/strings.xml
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
答案 1 :(得分:0)
为什么不在DB中而不是values.xml或代码中保存URL前缀。当用户安装apk时,在Application类中执行服务器命令并在第一次获取令牌并保留在DB中。既然你说你已经知道了为用户生成令牌的逻辑,那么当用户向你的服务器询问它时,生成相同的令牌并不是什么大问题。