编译安卓90
如果是卡刷包的话用打开压缩包的软件打开它,进去system/app文件夹里面有系统应用安装包把里面的。apk文件解压就好了
2. 如何给安卓应用编译
把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;
同时也可以删减系统自带的应用程序,精简系统;
1.\build\target\proct 目录下generic.mk文件:
java代码 收藏代码
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
testMid \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Mms \
Music \
我们添加一个testMid \ 应用名称。
2.把testMid包放入
\packages\apps 目录下,修改android.mk文件。
Java代码 收藏代码
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
注:LOCAL_PACKAGE_NAME := testMid (包名必须和generic.mk中添加的相同)
编译源码,可以看到在
\out\target\proct\smdkv210\system\app
目录下生存了testMid.apk了。这时system.img也包含了此应用。
-------------------------------------------------------------------
特殊情况:有时,应用需要包含jar包,这时的app导入源码时会出现问题:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop
由于 LOCAL_STATIC_JAVA_LIBRARIES := libarity 会引发错误信息。
目前解决方法是:
\build\core 目录下修改base_rules.mk
注释掉错误信息:
ifdef $(mole_id)
#$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif
$(mole_id) := $(LOCAL_PATH)
--重新编译,这时可以通过了。
(2)、删除原厂(Telchips)带源码的应用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注释掉相应语句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同时,在/out/target/proct/m801/system/app 找到相应的.APK包,并删除
3. 安卓APK回编译问题!!!!
关于APKTool工具反编译ROM系统设置文件问题
在反编译汉化新版的ROM时 发现系统文件无法反编译,如Settings.apk
主要是因为 ApkTooll 无法读取系统APK的构架;
那么,我们需要手动为ApkTool 添加一个新构架文件:
具体方式是:
打开ROM,手机内存上找也行,找到\system\framework\framework-res.apk
提取,随便放到一个位置注意:由于每个系统ROM不一样 G3 或其他机型都是不同的,
主要是制造商为ROM添加了其他构架HTC大部分名为resources.apk 或HtcContacts.apk
MOTO 除了resources.apk还有moto-res.apk、blur-res.apk
总之把framework文件夹下的APK文件都用一遍。自定义执行:java -jar apktool.jar if framework-res.apk
根据官方说法如下:HTC机子的安装如:( linux操作 Win系统类似)第一个文件
$ apktool if com.htc.resources.apk
I: Framework installed to: /home/brutall/apktool/framework/2.apk测试反编译
$ apktool d HtcContacts.apk
I: Loading resource table...
I: Decoding resources...
I: Loading resource table from file: /home/brutall/apktool/framework/1.apk 读取第一个构架
I: Loading resource table from file: /home/brutall/apktool/framework/2.apk 读取第二个构架
I: Copying assets and libs...
__________________________________________________________________
还有一种情况
如果你反编译的机型比较多,可以使用多个构架,如:$ apktool if com.htc.resources.apk hero尾部加名称【hero】
I: Framework installed to: /home/brutall/apktool/framework/2-hero.apk
$ apktool if com.htc.resources.apk desire尾部加名称【desire】
I: Framework installed to: /home/brutall/apktool/framework/2-desire.apk在反编译的时候灵活读取 不同的构架文件,如:$ apktool d -f -t hero HtcContacts.apk命令后添加【-f -t -hero】
I: Loading resource table...
I: Decoding resources...
I: Loading resource table from file: /home/brutall/apktool/framework/1.apk
I: Loading resource table from file: /home/brutall/apktool/framework/2-hero.apk调动读取【hero】构架
I: Copying assets and libs...
$ apktool d -f -t desire HtcContacts.apk 命令后添加【-f -t -desire】
I: Loading resource table...
I: Decoding resources...
I: Loading resource table from file: /home/brutall/apktool/framework/1.apk
I: Loading resource table from file: /home/brutall/apktool/framework/2-desire.apk调动读取【desire】构架
I: Copying assets and libs...------------------------------------------------------------------------------------------------
Windows下实例:【第一步安装构架】
C:\>java -jar c:\apkdb\apktool.jar if d:\framework-res.apk
I: Framework installed to: D:\My Documents\系统文件\apktool\framework\1.apk【测试反编译Settings.apk】
C:\>java -jar c:\apkdb\apktool.jar d d:\Settings.apk
I: Baksmaling...
I: Loading resource table...
W: Skipping "android" package group
I: Decoding resources...
I: Loading resource table from file: D:\My Documents\系统文件\apktool\framework\
1.apk
I: Copying assets and libs...
OK 成功搞定!注意:由于从C盘更目录操作的 反编译后 会保持在C盘
【测试回编译】C:\>java -jar c:\apkdb\apktool.jar b C:\Settings
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
OK 完成回编译!
------------------------------------------------------------------------------------------------
4. android编译的时候 是如何配置默认显示横竖屏
1,在Mainfest中设置。同意楼上的。
2,在OnStart或者OnCreate中设置也可以。
如果你说设置系统的话,这个就得看系统源码是如何配置的,记得不是太清了,在Configure.java里面吧,有几个函数是根据一些常量设定每个 横纵屏的设置。你应该不是做系统的吧,因为不会有任何一个厂商会让系统所有的内容都定死。
5. 将LINUX软件编译成安卓可用的APK
android虽然是基于linux的,但是他们并不是二进制兼容的。
android的工作方式是,在linux系统中运行一个基于qemu的虚拟机,在虚拟机中运行java虚拟机。android程序的api还是以java为主的,所以android是不支持J2sejava程序的。
所以一个随便的linux程序代码是不可以编译成android软件的。
如果你想在android手机上运行python perl 或者shall脚本的话,是可以的,在android上有专门的终端什么的。
6. 安卓apk文件如何反编译
安卓apk文件反编译:
一、反编译xml文件
1>
首先下载我给你们提供的文件夹apk_fanbianyi,把它放到某个盘的根目录下(为了方便输入dos命令),然后打开apktool文件夹,安装win+r键,然后输入cmd,进入dos命令行,大家别怕,不用晕,很简单的。
2>
然后在dos命令中首先输入文件夹所在盘符+“:”回车,接着再输入cd+apktool所在目录,切换dos工作空间到apktool文件夹下。
3>
接着输入
apktool.bat
d
【需反编译apk文件路径】
{【反编译文件反编译后的路径】},其中最后一部分可以省去,系统会默认把apk文件反编译到apktool目录下,例如输入
apktool.bat
d
d:/apk_fanbianyi/ttkp.apk,在apktool文件夹下就会生成一个ttpk的文件夹,所有的xml文件全部反编译成功。
二、反编译java文件
1>
首先解压需要反编译的apk文件,拷贝出里面的classes.dex文件到dex2jar文件夹(为了方便操作,省去dos命令输入路径的麻烦)
2>
把工作空间切换到dex2jar文件夹下,输入命令cd
d:/apk_fanbianyi/dex2jar回车
3>
输入命令dex2jar.bat
classes.dex回车,发现dex2jar文件夹下多了一个classes_dex2jar.jar文件,这是反编译成功的java文件
三、xml文件的打开
1>
打开apktool文件夹下的ttkp文件夹,任意找到一个xml文件,选中单击右键,选择notepad++打开(需下载),如果没有此软件,可以选择打开方式,选择记事本打开
四、java文件的打开
1>
dex2jar文件夹下的classes_dex2jar.jar拷贝到apktool文件夹的ttkp文件夹中,不能用notepad++打开,不然会乱码的
2>
启动apk_fanbianyi文件夹下的jd-gui.exe,然后点左上角file,选择open
file,找到classes_dex2jar.jar文件,可以发现有很多包,选择包下的任意一个java文件,打开不乱码了,是不是很神奇,哈哈,你学会了安卓apk文件反编译
7. 安卓怎么使用修改过的源码编译程序
1、Android的文件系统结构是怎样的,我们安装的程序放在那里?
编译Android源码之后,在out/target/proct/generic一些文件:
ramdisk.img、system.img、userdata.img、 system、 data、root
其中, system.img是由 system打包压缩得到的, userdata.img是由 data打包压缩得到的。
ramdisk.img是模拟器的文件系统,把ramdisk.img解压出来可知道,ramdisk.img里的文件跟root文件夹的文件基本一样。模拟器装载ramdisk.img并解压到内存,接着分别把system.img和userdata.img挂载到 ramdisk下的system和data目录。我们编译出来的应用程序就是放在system/app下的。用户安装的程序则是放在data/app下。
2、Android SDK和android源码能为我们提供什么工具?
AndroidSDK提供有很多工具,如adb,ddms,emulator,aapt等,并提供kernel-qemu、ramdisk.img、system.img、userdata.img。因此,只要有android SDK,我们就可以在模拟器上把android跑起来。
Android源码可以编译出android SDK、adb等工具、android文件系统,以及ADT插件,也就是说,我们可以从android源码编译出所有android相关的东西。
3、 把Android源 码”make”之后会生成许多工具和android文件系统(system.img等),我们又可以使用“makesdk”来生成android SDK,android
SDK也包括有工具和android文件系统(system.img等),而原来安装的时候我们也安装了androidSDK,那么我们在开发时应该使用那些工具和android文件系统呢?
8. 求安卓软件反编译修改教程
1、baksmali:classes.dex反编译为smali格式
(smali:smali格式编译打包为classes.dex,但由于smali格式类似汇编,比较难阅读,所以用dex2jar进行辅助 )
2、dex2jar:classes.dex转为jar包
3、jdgui:jar反编译并阅读
操作顺序:
apk用zip解开,里面的classes.dex分别用baksmali处理为smali,用dex2jar处理成jar,然后用jdgui看代码,找好java文件中要改的位置后,在smali里找对应的位置修改,改完了用smali再编译为classes.dex,覆盖原来apk里的同名文件,最后重新签名。注意安装时要先删除原来手机里的版本,因为签名不同。