# tool **Repository Path**: fostion/tool ## Basic Information - **Project Name**: tool - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2015-08-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #tool ###文件目录 ####Linux文件夹 - linux文件编码是utf8,但是window下是gbk,文件解压是乱码,解决办法: unzipgbk文件 复制到 /bin 文件夹下,命令行输入 unzipgbk 文件名字 ####Android文件 #####AXMLPrinter2.jar 功能:专门用来反编译AndroidManifest.xml文件 命令:java -jar AXMLPrinter2.jar AndroidManifest.xml #####ClassyShark.jar 功能:专门用来反编译apk文件,查看使用的库 命令:java -jar ClassyShark.jar -open my.apk #####apktool.jar 功能:强大的反编译工具 命令:java -jar apktool.jar d my.apk #####apk反编译 功能:apk反编译某文件夹下的所有文件 条件:apktool 文件必须与sh文件放在当前目录下 代码: ``` ####Jadx 功能:反编译源码 网站:https://github.com/skylot/jadx 命令:jadx -gui *.apk/*.jar #!/bin/bash #批量反编译apk文件 #输入:文件目录 输出:反编译所有文件 #条件:apktool.jar 和 sh 文件必须在同一个文件夹中 for file_a in $1/*; do temp_file=`basename $file_a` extension="${temp_file##*.}" if [ $extension = "apk" ]; then echo $temp_file java -jar apktool.jar d $temp_file fi done ``` 使用方式: 1. 创建sh文件,并将代码复制进去 2. ./文件 文件路径 3. 反编译将会将文件放在当前目录下 ###Android 签名及渠道及渠道包创建 1. 渠道包生成 1. 在app build文件中添加 ``` productFlavors { wandoujia {} baidu {} c360 {} uc {} productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } } ``` 2. mainifests文件添加 ``` ``` 3. 命令行输入:gradle assembleRelease 或者 ./gradlew assembleRelease 注意:提示找不到gradle时,需要输入./gradlew下载适合的版本,提示:gradlew找不到命令意味着,项目中的gradlew文件权限有误,需要设置 chmod 777 gradew 文件,开放权限 4. 单独生成渠道包 gradle assemblegWandoujiaRelease 2. 签名生成 1. build文件生成 ``` signingConfigs { //修改debug签名 debug { //选择自己的debug位置 storeFile file('/home/fostion/important/Appkey/nekocode.jks') storePassword "110110zxc" keyAlias "nekocode" keyPassword "110110zxc" } release { //选择自己的debug位置 storeFile file('/home/fostion/important/Appkey/nekocode.jks') storePassword "110110zxc" keyAlias "nekocode" keyPassword "110110zxc" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } ``` 2. 命令行输入:gradle assembleRelease 就可以生成qian 3. 命令行签名 ``` jarsigner -verbose -keystore nekocode.jks -storepass 110110zxc -signedjar tap_sign.apk tap_unsign.apk 'nekocode' ``` 4.签名信息查询 - 查看keystore信息 ``` keytool -list -keystore nekocode.jks ``` - apk签名查询 解压apk文件打开 命令行输入: ``` keytool -printcert -file META-INF/CERT.RSA ``` ###jar反编译及重新打包 1. 使用winrar将jar文件解压得到class文件 2. 使用JGUI查看class文件源码 3. 使用Eclipse或者AndroidStudio按照文件路径构建项目,然后根据需要修改代码 4. 将生成的class文件替换原来jar解压后的文件 5. 使用命令`jar -cvf yourname.jar .`打包成jar文件,替换原来jar文件即可 ### 临时记录问题: ``` 新增一个模块,通过aidl,暴露接口给第三方应用使用. 1.open(String channel) open(int number) 根据频道名称或频道序号打开直播 2.change(String channel) change(int number) 根据 频道名称或频道序号切换频道 3.next() 下一个频道 4.prev() 上一个频道 5. getJson() 返回频道数据json,结构[{id,name,number}] ,这个接口要注意aidl通信长度限制问题 6.getList() 返回频道数据列表,结构[{id,name,number}] 这个接口返回对象,还要暴露aidl 对应对象 5,6的接口要根据实际情况看是否能实现 ```