【1】安卓【一】APK包名修改,重签

1、下载apktool_2.4.1。

2、将要修改的apk放在同一目录。执行命令如下:  (解包)

     java -jar apktool_2.4.1.jar d xxxx.apk

会生成一个新的文件夹:

3、修改AndroidManifest.xml中的包名

     将package后面的包名com.tencent.xxx改为你想要的新包名,我改为了com.aaa.tencentweb

     将涉及原包名的com.tencent.xxx的相关activity的声明中的包名均改为新包名com.aaa.tencentweb

   至于intent-filter里面的action名中包含原包名的,则可以不改,如果改的话,代码中也要相应的改变

     另外,如果有provider,provider的authorities也得改,这个在同一手机上必须唯一,否则安装会失败

4、修改资源

     如果只是修改apk相应的资源,例如图片,比较好办,在res文件夹下找到相应的文件替换就可以。

     修改代码比较麻烦,因为反编译出来的结果中只有smali文件,即Java虚拟机支持的汇编语言。

     如果确实需要修改代码,就得对照smali文件和从classes.dex反编译出来的源码了,按照smali的规范来改动即可。相当于写汇           编这个难度比较大。

5、重新打包

        既然资源文件已经顺利的反编译出来了,那我们就可以适当的修改点东西了,例如换个图标啥的、改下布局文件等,执行命令:

apktool b xxxx -o ccc.apk

6、签名的意义(我在Kali Linux 签名的)
  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

apk文件签名主要分为三个步骤,证书的创建-->签名生成-->优化(可选)
 

   keytool -genkey -v alias KeyName -keyalg RSA -keysize 2048 -validity 10000 -keystore KeyFileName.keystore

   keytool -genkey -v -alias 1 -keyalg RSA -keysize 2048 -validity 10000 -keystore 2

    这行命令中一些重要的参数值说明如下:

     KeyName:表示证书的别名

     KeyFileName.keystore: 证书保存的文件名

     10000: 表示证书的有效期,单位(天)

     RSA:证书的加密类型,一般默认为RSA

其次在创建的过程中要填写一些基本的信息,证书密码等相关的信息。

证书生成后的查看     

keytool -list -alias KeyName -keystore KeyFileName.keystore

keytool -list -keystore 2

对APK进行签名
     

jarsigner -verbose -keystore KeyFileName.keystore sign_apk_file.apk KeyName

jarsigner -verbose -keystore 2 xxx.apk 1


参数解释:
    KeyFileName.keystore 已经生成号的证书

    sign_apk_file.apk 需要签名的apk文件

    KeyName 证书的别名

待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。
如果不想创建过程输出太多信息,可以删除“-verbose” 。
上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.apk,
只需将 signed.apk 改为
 -signedjar signed.apk sign_old.akp 
即可。
签名后可以使用如下命令验证是否签名成功:
jarsigner -verify signed.apk 
如果需要查看更详细的验证信息,可修改为:
jarsigner -certs -verbose -verify signed.apk 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值