博文

目前显示的是标签为“android”的博文

命令行使用JKS文件为APK签名

    目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:     jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias    其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:   jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android    执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:     jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)    查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:     zip -d Explorer_unsigned.apk META-INF/\*    命令执行后有如下提示:    deleting: META-INF/MANIFEST.MF    deleting: META-INF/CERT.SF    deleting: META-INF/CERT.RSA    执行完该命令后,再执行上面的jarsigner命令重新签名即可,此时有如下提示输出:    正在添加: META-INF/MANIFEST.MF    正在添加: META-INF/ANDROID.SF    正在添加: META-INF/ANDROID.RSA    正在签名: ...

Android CTS使用

    最近需要跑下CTS功能,查了一些资料,把简要的使用步骤作下笔记,以便后期使用,关于CTS的资料,网上可以找到很多,主要是关于Android系统的兼容性测试,看下我们修改了Android系统后对API及应用等是否存在影响,里面包含了一些定义好的测试用例供我们使用,下面是CTS的使用过程:       1、编译CTS工具:            在编译好的Android系统(对Android源码进行编译)后,进行下面操作编译CTS工具(须先进到Android源码目录下):            source build/envsetup.sh            make cts            第一个命令是用于配置编译时需要用到的环境变量等,第二个命令就进行CTS的编译,编译好后会在源码目录下的 out/host/linux-x86/ 位置生成相应工具,相应如下:            Package CTS : out/host/linux-x86/cts/android-cts.zip                          cts make file : build/core/tasks/cts.mk                          run cts program :out/host/linux-x86/bin/cts     ...

Android4.2.2开启USB和Bluetooth Tether功能

     产品研发告一段落,对比着自己做的东西和SAMSUNG的S3,觉得缺了点什么,发现缺了Tether相关的一些功能,只有WIFI,而少了USB和BT的,故而查找了相关资料,发现在frameworks/base/core/res/res/values/config.xml相关的配置还没有添加上,直接查看Android源码里的device/samsung/tuna/overlay/frameworks/base/core/res/res/values/config.xml文件,做了相应对比后,修改该文件,添加了如下内容:       在<string-array translatable="false" name="networkAttributes">中添加:        <item>"bluetooth,7,7,1,60000,true"</item>       在<string-array translatable="false" name="radioAttributes">中添加:        <item>"7,1"</item>       在<string-array translatable="false" name="config_tether_usb_regexs">中添加:        <item>rndis\\d</item>       在<string-array translatable="false" name="config_tether_bluetooth_regexs">中添加:        <item>"bt-pan"</item>       其中第1和...

查看APK的包名等信息

      说到查看Android系统里应用程序APK的包名信息的方法很多,一般我们可以反编译APK,然后查看里面的AndroidManifest.xml文件,也可以安装并运行该APK,在Logcat下查看StartActivity的相关内容,其实在Android的SDK里面已集成了aapt工具(Android Asset Packaging Tool)来查看APK的信息,该命令中,我们用到dump参数较多些,其中有如下相关参数说明:       aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]          badging               Print the label and icon for the app declared in APK.          permissions         Print the permissions from the APK.          resources            Print the resource table from the APK.          configurations    Print the configurations in the APK.          xmltree               Print the compiled xmls in the given as...

Android5.1双网卡NAT功能的iptables规则

    在Android5.1上面,我们参照了系统里的WiFi热点、USB Tether、Bluetooth Tether功能,发现有一组命令可实现双网卡的NAT网络地址转发功能:       echo 0 > /proc/sys/net/ipv4/ip_forward       /system/bin/iptables -t nat -A natctrl_nat_POSTROUTING -o eth0 -j MASQUERADE       /system/bin/iptables -A natctrl_FORWARD -i eth0 -o ap0 -m state --state ESTABLISHED,RELATED -g natctrl_tether_counters       /system/bin/iptables -A natctrl_FORWARD -i ap0 -o eth0 -m state --state INVALID -j DROP       /system/bin/iptables -A natctrl_FORWARD -i ap0 -o eth0 -g natctrl_tether_counters       /system/bin/iptables -A natctrl_tether_counters -i ap0 -o eth0 -j RETURN       /system/bin/iptables -A natctrl_tether_counters -i eth0 -o ap0 -j RETURN       /system/bin/iptables -D natctrl_FORWARD -j DROP       /system/bin/iptables -A natctrl_FORWARD -j D...

Ubuntu下安装JDK和切换默认JAVA版本

    由于Android6.0和7.0分别需要OpenJDK7和OpenJDK8,而Ubuntu的apt源码搜索不到,故执行如下命令即可搜索并安装上:        sudo add - apt - repository ppa : openjdk - r / ppa        sudo apt - get update        sudo apt - get install openjdk - 8 - jdk       安装成功后,可以执行命令sudo update-alternatives --config java来查看当前机器安装的JDK版本信息和切换默认的JDK版本。

Android应用反射机制获取Property

    在Android应用里面,有时候需要获取Property的值,而这时需要导入android.os.SystemProperties这个包,可这个包在framework里,需要导入相应的JAR包,如果在没有系统JAR时,就比较麻烦了,此时可以使用到JAVA的反射机制来处理该问题,如下对比:       1.使用JAR包时的调用代码:            import android.os.SystemProperties;            mIsBox = SystemProperties.getBoolean("ro.platform.has.mbxuimode", false);       2.使用反射机制的调用代码:            try {                   mIsBox = (boolean)Class.forName("android.os.SystemProperties")                         .getMethod("getBoolean", new Class[] { String.class, Boolean.TYPE })                         .invoke(null, new Object[] { "ro.platform.has.mbxuimode", false }); ...

搭建Android应用开发环境

图片
0. 前言 对于 Android 应用的开发环境,现在 Google 已推出了 Android Studio ,可从 http://developer.android.com/sdk/installing/studio.html 了解,如果不想使用 Studio , Google 也提供了 ADT Bundle ,可从 http://developer.android.com/sdk/installing/bundle.html 了解到,而这些都是集成好的工具,基本上解压后再配置下就可以使用,而现在我们要使用的是最传统的开发环境: Eclipse+JDK+ADT+Android SDK 。 1. 环境 本次是在 Ubuntu13.10 64 位系统环境下搭建 Android 应用开发环境的,相关工具及说明如下: 工具名 版本 下载地址 Eclipse eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz http://mirrors.neusoft.edu.cn/eclipse/technology/epp/downloads/release/kepler/SR2/eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz JDK 1.6 sudo apt-get install oracle-java6-installer ADT 22.6.3 http://dl.google.com/android/ADT-22.6.3.zip Android SDK r22.6.2 http://dl.google.com/android/android-sdk_r22.6.2-linux.tgz   2. 步骤 1). 安装 JDK 使用 sudo apt-get install oracle-java6-installer 命令安装,安装过程会确认 License 的问题,全都 OK 确认即可,安装好后执行 java 命令,如果有看到如下内容则表示安装成功: Usage: java [-options] class [args…] (to execute a class) or java [-options] -jar jarfile ...