签名Android40以后代码混淆及签名

代码签名  时间:2021-04-08  阅读:()

Android 4.0以后代码混淆及签名

Android 4.0要用ProGuard比2.3更简单在Ecl ipse中打开工程目录下的project.properties文件该文件中有以下两行

To enable ProGuard to shrinkand obfuscate your code, uncomment this(avai lableproperties:sdk.dir, user.home):proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

根据这段说明只要将proguard.config前面的#去掉就可以利用ProGuard来混淆代码了当然默认的设置是不带优化功能的可以用以下设置来加上代码优化功能上图蓝色文字部分 proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt

接下来就是生成Apk了。这里需要注意的是如果你用Ecl ipse里的Run或Bui ldProject/Bui ld Al l来生成Apk是不会混淆代码的在Ecl ipse的Package Explorer里选中工程的根结点在右键菜单里找到Android Tools如下图所示其下有两个子菜单项 “ExportSigned Appl ication Package. . .”和“Export Unsigned Appl ication Package. . .” 一个是带RSA

数字签名一个是不带数字签名根据需要选一个然后按照向导操作即可最终生成的Apk就是混淆过代码的了查看效果可以用7z等压缩程序Ubuntu中直接用归档管理器打开将其中的classes.dex解压用dex2jar转成jar格式后再用Java反编码工具打开就会看到代码的混淆效果。

自己在测试的时候是使用了没有签名的,选择的是Export Unsigned Appl ication Package。如果使用Export Signed Appl ication Package打包APK,关于签名的学习下面继续介绍. . . . . .

注意 同时在进行混淆的同时可以自己写一些规则在工程的p rog u a rd-p roject.txt文件中写例如

1 、

-l ibraryjars l ibs/android-support-v4.jar

-l ibraryjars l ibs

就是加载第三方Jar包

2、

-ignorewarnings

是去除代码中的警告

3、

-keep class com.al ibaba.fastjson.**

-keep保留不希望混淆的类

4、

-keep class com.msd.fol lowme.Render{publ ic*

}

此类的公共方法保留不混淆。

签名的学习

为什么要签名

开发And roid的人这么多完全有可能大家都把类名包名起成了一个同样的名字这时候如何区分签名这时候就是起区分作用的。

由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序签名可以保证相当名字但是签名不同的包不被替换。

APK如果使用一个key签名发布时另一个key签名的文件将无法安装或覆盖老的版本这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。

这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时签名可以防止抵赖的发生。签名的注意事项

所有的And roid应用都必须有数字签名没有不存在数字签名的应用包括模拟器上运行的。Android系统不会安装没有数字证书的应用。

签名的数字证书不需要权威机构来认证是开发者自己产生的数字证书 即所谓的自签名。模拟器开发环境开发时通过ADB接口上传的程序会先自动被签有Debug权限然后才传递到模拟器。如下图所示 Ecl ipse菜单的Window->Preferences->Android–>Bui ld下显示的是我们默认的调试用的签名数字证书。

正式发布一个And roid应用时必须使用一个合适的私钥生成的数字证书来给程序签名不能使用ADT插件或者ANT工具生成的调试证书来发布。

数字证书都是有有效期的Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中 即使证书过期也不会影响程序的正常功能。

签名后需使用zipal ign优化程序。

Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系而不是用来决定最终用户可以安装哪些应用程序。

签名的方法

方法一、使用Ecl ipse工具

此方法适用于Android1 .5及以上版本。

步骤一打开Ecl ipse->选择你要签名的项目->右击->android tools->Export signedAppl ication package

步骤二在出现的窗口确认是不是这个项目要签名然后选择下一步

步骤三在Export Android Appl ication这一步如果我们之前已有有了keystore,选择我们之前已有的否则我们新建一个。

如下选择需要保存这个证书文件的目录 以及这个证书文件的一个密码。

步骤四 点击下一步后我们需要填写keystore的基本信息如别名密码有效期姓名组织组织名称所在城市所在省份 国家等 点击Next

步骤五、选择被签名后的APK保存位置。点击finish。注意是选择最终将产生的文件。

之后我们在刚才选择的目录下就可以看到生成的签名后的APK文件。

以上是一种比较简单的签名方式一般情况下使用这种签名方式就可以了. . . .下面的链接还有一种方式是利用JDK自带的工具进行签名链接如下http://www.cnblogs.com/ghj1976/archive/201 1/07/18/2109381 .html

港云网络(¥1/月活动机器),香港CN2 4核4G 1元/月 美国CN2

港云网络官方网站商家简介港云网络成立于2016年,拥有IDC/ISP/云计算资质,是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护。点击进入港云网络官方网站港云网络中秋福利1元领【每人限量1台】,售完下架,活...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

香港物理服务器 E5-2660v2 16G 500GSSD 增送20G防御 688/月 华纳云

#年终感恩活动#华纳云海外物理机688元/月,续费同价,50M CN2 GIA/100M国际大带宽可选,超800G 防御,不限流华纳云成立于2015年,隶属于香港联合通讯国际有限公司。拥有香港政府颁发的商业登记证明,作为APNIC 和 ARIN 会员单位,现有香港、美国等多个地区数据中心资源,百G丰富带宽接入,坚持为海内外用户提供自研顶级硬件防火墙服务,支持T B级超大防护带宽,单IP防护最大可达...

代码签名为你推荐
Servicemyinternalservererrorinternal server error怎么解决centos6.5centos 6.5 安装哪些软件internetexplorer无法打开电脑的Internet Explorer打不开?重庆网站制作请问重庆那一家网站制作公司资信度比较好?技术实力雄厚呢?flashfxp注册码谁知道 FlashFXP.rar的注册码?泉州商标注册请问泉州商标注册要怎么办理?在哪办理?缤纷网谁都可以创造一个属于自己的缤纷世界中的缤纷是什么意思300051三五互联请问300051三五互联还会继续盘升吗?drupal教程drupal框架初学,请问开发流程是怎么样的,这个框架是对本体做修改,是不是说最后的成品就是这个d
代理域名备案 淘宝二级域名 linode日本 lamp配置 远程登陆工具 租空间 华为4核 韩国名字大全 200g硬盘 双十一秒杀 可外链网盘 33456 爱奇艺会员免费试用 英雄联盟台服官网 万网主机 免备案cdn加速 江苏双线 空间排行榜 西部数码主机 日本小学生 更多