精华内容
下载资源
问答
  • 利用源码编译Android系统APK

    千次阅读 2012-08-06 01:25:43
    export ANDROID_HOME=/home/administrator/soft/android export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic 2、创建项目 and
    1、设置环境
    export ANDROID_HOME=/home/administrator/soft/android
    export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin
    export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic

    2、创建项目
    android create project -t 1 -k com.lhw.led -a MainActivity -p ./led

    Avd id: 1,It's get by command "android list"

    Project Name: led

    Package: com.lhw.led 

    Main Activity:MainActivity

    Project Path: ./

    接下来就是自己编写Android程序了。

    3、编写Android.mk
    Android.mk需要放在项目根路径下,即led下,内容:

    LOCAL_PATH              := $(call my-dir)

    include $(CLEAR_VARS)
    LOCAL_SRC_FILES         := $(call all-subdir-java-files)
    LOCAL_PACKAGE_NAME      := led 

    LOCAL_JAVA_LIBRARIES    :=  
    LOCAL_STATIC_JAVA_LIBRARIES :=

    include $(BUILD_PACKAGE)


    4、编译
    在Android源码目录下执行:
    ./build/envsetup.sh
    mmm /home/administrator/workspace/android_test/led/

    执行结果:
    Install: out/target/product/generic/system/app/led.apk
    展开全文
  • 编译Android系统APK 1、设置环境 export ANDROID_HOME=/home/administrator/soft/android export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product...
  • 打开Apktool网址:https://ibotpeaches.github.io/Apktool/install,点击图片中1位置,将弹出的内容复制到sublime(这是我的文本编译工具)中,保存为apktool,注意去掉扩展名.sh,如果保存后仍然有扩展名,可以...

           我们下载到某些apk的时候,可能总想学习下别人是怎么进行程序设计的,或者怎样使用xml文件布局的,这时就想到将apk文件的后缀改为rar并解压,最终得到一些图片资源和很多打开为乱码的文件,可见这种方式不可行,这就需要使用apktool、dex2jar、jd-gui等工具对apk进行反编译了。
    1. 打开Apktool网址:https://ibotpeaches.github.io/Apktool/install,点击图片中1位置,将弹出的内容复制到sublime(这是我的文本编译工具)中,保存为apktool,注意去掉扩展名.sh,如果保存后仍然有扩展名,可以重命名去掉。
    2. 点击图片中2位置下载apltool_x.x.x.jar(x是代号,建议下载最新版本),将下载好的jar包改名为apktool.jar。
    这里写图片描述
    3. 将以上两个文件放到“/usr/local/bin”目录下,并增加两个文件的可执行权限。
    这里写图片描述
    4. “/usr/local/bin”是隐藏文件,在Finder中无法直接查看,可以右键(或者快捷键command+shift+G)选择前往文件夹,在弹出的文件夹的对话框中,输入“/usr/local/bin”前往;也可以是ShowOrHide等第三方软件查看。
    5. 打开系统偏好设置–>键盘–>快捷键–>服务–>把“新建位于文件夹位置的终端窗口”勾选上
    这里写图片描述
    6. 在bin文件夹上右键选择服务–> 新建位于文件夹位置的终端窗口
    图片名称
    7. 执行命令:
    chmod a+x apktool.jar
    chmod a+x apktool.jar
    (chmod a+x fileName命令为文件增加可执行权限)
    8. 然后执行命令:shell apktool;验证成功apktool -v
    这里写图片描述
    9. 打开dex2jar网址:https://github.com/pxb1988/dex2jar,进入github后向下拉找到如图位置,两个下载都可以,我选择第一个下载
    这里写图片描述
    点击Downloads
    这里写图片描述
    10. 打开JD-GUI网址:http://jd.benow.ca/,下载。
    这里写图片描述
    11. 把dex2jar和jd-gui分别解压
    这里写图片描述
    12. 创建一个文件夹(文件夹名字随意但不建议中文)将待反编译的apk放进去(比如我的待反编译apk是HiWiFi.apk)
    13. 终端进入这个文件夹执行命令:apktool d HiWiFi.apk(apktool d 后面跟着的是待反编译apk名字)
    这里写图片描述
    14. 然后执行命令apktool b HiWiFi(apktool b 后面跟的是待反编译的apk的名字,注意不加后缀)。
    这里写图片描述
    15. 将dex2jar-2.0文件夹里的d2j_invoke.sh和d2j-dex2jar.sh两个文件增加可执行权限(方法同上)。
    16. 进入到dex2jar-2.0这个文件夹下执行命令:
    ./d2j-dex2jar.sh /Users/wangdong/Downloads/HiWiFi/HiWiFi.apk
    (./d2j-dex2jar.sh 后面跟的是apk的路径)
    这里写图片描述
    反编译好的文件在dex2jar-2.0文件夹下HiWiFi-dex2jar.jar
    这里写图片描述
    17. 打开jd-jui.app,将得到的文件拖进去就能看到源码
    这里写图片描述
    到此反编译结束了。

    展开全文
  • 编译android源码apk是否生成odex方法

    千次阅读 2016-03-23 19:14:25
    编译android源码apk是否生成odex方法 其实Android系统默认的配置是,如果没有指定DISABLE_DEXPREOPT := true,那么user版本生成odex,其他版本不生成odex文件; 进入源码目录:build/core/main.mk中找到  ...

    转载:www.cofface.com »Cofface Blog » 编译android源码apk是否生成odex方法

    其实Android系统默认的配置是,如果没有指定DISABLE_DEXPREOPT := true,那么user版本生成odex,其他版本不生成odex文件;
    进入源码目录:build/core/main.mk中找到

     ifneq (true,$(DISABLE_DEXPREOPT))
        ifeq ($(user_variant),user)
          ifeq ($(HOST_OS),linux)
            WITH_DEXPREOPT := true
          endif
        endif
      endif

    所以user版不想生成odex,那么只需要定义DISABLE_DEXPREOPT := true;

    而eng版本要生成odex的话,那么只需要把WITH_DEXPREOPT := true

    如果想单独控制某一个应用是否生成odex的话可以在这个应用的Android.mk中添加WITH_DEXPREOPT := true;

    对于这个配置的逻辑可以参考
    /build/core/package.mk

    ifneq (true,$(WITH_DEXPREOPT))
    LOCAL_DEX_PREOPT :=
    else
    ifeq (,$(TARGET_BUILD_APPS))
    ifneq (,$(LOCAL_SRC_FILES))
    ifndef LOCAL_DEX_PREOPT
    LOCAL_DEX_PREOPT := true
    endif
    endif
    endif
    endif
    ifeq (false,$(LOCAL_DEX_PREOPT))
    LOCAL_DEX_PREOPT :=
    endif

    展开全文
  • 在Eclipse下编译Android原生APK方法

    千次阅读 2014-01-13 16:37:14
    1. 在eclipse环境下,编译Android原生的apk 2. 在eclipse环境下,做system系统签名的方法。(有很多,这里在windowsxp下做脚本处理) 前提条件: 1. 下载android源码; 2. 编译android源码; 以上两步网上有很...

    目标:

    1.      在eclipse环境下,编译Android原生的apk

    2.      在eclipse环境下,做system系统签名的方法。(有很多,这里在windowsxp下做脚本处理)

     

    前提:

    1.      下载android源码;

    2.      编译android源码;

    以上两步网上有很多相关的资料,这里不做重复说明。

     

    说明:

    在eclipse环境下,要编译一个原生的apk是相当困难的。

    但是还是有办法的,这里只做Java层的编译的说明,不做eclipse下C/C++的编译。

    我们要去剖析Android源码编译APK的整个过程。

    *.java文件 --》  *.class文件 --》 打包到 *.dex文件

    所以还是生成了*.class文件的。Eclipse应用系统jar和第三方jar都是压缩 *.class文件。

     

     

    目标1 搭建eclipse编译android原生APK环境

    问题1:这些*.class文件在哪里呢?

     

    编译源码过程中会生成很多的中间文件,在out\target\common\obj\JAVA_LIBRARIES 可以惊喜的发现很多android平台的Jar包,注意用压缩软件看看jar的详细内容,都是*.class

    这里我们举出一个例子:

     


     

    Ok,从图中你就可以看到相关的内容,注意要编译android源码后才能看到。这里不再啰嗦了。经过对比classes.jar classes-full-debug.jar classes-jarjar.jar 三个文件居然相同。

     

     

    问题2:classes.jar classes-full-debug.jar classes-jarjar.jar三个文件在编译时的具体作用在这里不做说明。(有兴趣的朋友可以自己研究下)

     

     

    问题3:怎么处理eclipse的环境,才能编译android原生的APK呢?

    步骤如下:

    1.      将android源码目录下out\target\common\obj\JAVA_LIBRARIES 的 classes.jar 或者

    class-full-debug.jar拷贝到一个公共目录。


    2.      将拷出的classes.jar 或者 class-full-debug.jar 修改为对应文件夹前缀的名字。

    android.cts.dpi_intermediates   classes-full-debug.jar  --》android.cts.dpi.jar

    省略掉_intermediates 后缀即可。(这个工作是个力气活,要多点耐心!!!!)

     

    3.      在eclipse中导入Settings.apk源码.

    目录  package/apps/Settings/****


    问题来了,报了很多错红叉,不怕,接着来解决问题。

     

    问题4:如何构建自己的eclipse的APK编译环境。

    Settings工程目录上右键à Build Path à  Add Library

     

    点击User Libraries 按钮

     

     

     

     

     

      增加自己的库名:android_system  并勾选  System library (added to the boot class path)

     

    选中建立的android_system系统库,点击Add JARS按钮,找到第2步的文件夹,选中所有jar文件,打开,然后OK 确认。

     


    Settings工程目录上右键 --》Build Path --》  Add Library  

    勾选android_system  按Finish按钮即可。

     

    问题5:出现了两个系统库怎么处理?

    需要将原生的Android 4.3移除。

     

    移除的方法

    Settings工程目录上右键à Build Path --》 Configure Build Path..

    选中Android 4.3 点击右侧的Remove按钮。Ok搞定。

     

     

     

    遇到的问题处理:

     

    这种情况下,快捷键Ctrl + 1   点击上图的ClearAll Lint markers  Ok

     

    最后的结果:

     

     

    目标2 eclipse下签名APK

     

    步骤:

    1.      建立sign目录

    2.      拷贝签名文件 platform.pk8 platform.x509.pem

    3.      签名signapk.jar

    4.      创建signShell.bat文件

     

    signShell.bat

    脚本内容:

    E:

    cd E:\project\myeclipse\androidProject_hn_2013_1_07_ANT\Settings\bin

    del Settings2.apk

    java -jar ../sign/signapk.jar../sign/platform.x509.pem ../sign/platform.pk8 Settings.apk  Settings2.apk

    adb uninstall com.android.settings

    adb install Settings2.apk

    pause

    双击的时候 signshell.bat的 open With à System Editor

     

    5.      AndroidManifest.xml 中 system权限

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

          package="com.android.settings"

       coreApp="true"

       android:sharedUserId="android.uid.system">

    所以顺序是运行Settings工程,在bin目录下生成了Settings.apk

    点击signshell.bat 脚本,运行后生成签名后的Settings2.apk

     

    Ok一切搞定。

    展开全文
  • Android系统编译过程中,会自带一些我们没必要的软件。每次系统编译打包时,都会默认将这些软件打包到image里面,升级的时候就会有这些软件。并且暂用内存。 并且,大部分的系统默认软件我们是用不到的,那就需要...
  • mac系统下反编译Android apk所需全部工具,在本在mac笔记上全部测试通过,才上传的。
  • 工具描述 ...apktool最大幅度的还原apk的资源,通过apktool处理过的apk包,可以获取,替换里面的资源文件,然后重新打包,签名生成破解的apk。 安装apktool 把下载好的apktool.jar &amp; a...
  • android apk编译win系统下工具
  • 1. 打开91手机助手,进入“文件管理”。 2. 选择"文件系统"---System/app,点击“上传到设备”按钮,点击“文件”。 3. 选择要上传的apk,点“打开”即可。
  • 当我们在AndroidStudio中编译APK的时候,使编译出来的APK自带签名,需要如下的几步。 1.获取系统签名文件 系统签名文件的获取,需要在源码中拷贝出来如下几个文件,platform.pk8 platform.x509.pem 然后编写如下脚本...
  • Android 系统apk编译源代码的时候如何引用android-support-v4.jar 在Android.mk 当我们的代码里面引用了 android-support-v4.jar 的时候,但我们放到系统 里面去编译的时候就不需要放libs 下了,而且需要直接...
  • Android APK系列4-------Android编译APK后的系统结构 system文件夹就是system.img的解压结果,data就是userdata.img的解压结果,root就是ramdisk.img的解压结果。我们常见到的boot.img就是内核+ramdisk,...
  • 取消编译APK时,需在mk中的PRODUCT_PACKAGES 下去除或注释掉某软件名称。 Mstar的系统一般在device.mk中。 如取消MTvHotkey 软件的编译: PRODUCT_PACKAGES += \ livecap \ MLeanbackTv \ MTvPlayer \ # ...
  • 早在4年前我曾发表过一篇关于《Android开发之反编译与防止反编译》的文章,在该文章中我对如何在Windows平台反编译APK做了讲解,如今用Mac系统的同学越来越多,也有很多朋友问我能否出一篇关于如何在Mac平台上反编译...
  • 1. 前言 最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求...还有一种是在Android系统编译时顺带着将三方apk文件打包到系统中。 2. 系统编译时 首先在Android系统目录 XXX\packages\...
  • Android一词的本义指“机器人”,同时...​ 那么我们要如何在Linux系统下打包编译APK包呢? 一、安装SDK-Tools工具 1.下载Tools 因Gradle安装编译所需的SDK-Tools作为依赖,所以我们需要下载**“SDK-Tools”**并...
  • APP的在Android.mk文件中加入: LOCAL_DEX_PREOPT := false 全局的 在/build/core/main.mk中,查找并修改 WITH_DEXPREOPT := false

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,800
精华内容 720
关键字:

编译android系统apk