Android Assets打开调用过程源码分析

一、Android读取Assets中图片并显示

private Bitmap getImageFromAssetsFile(String fileName)
{
    Bitmap image = null;
    AssetManager am = getResources().getAssets();
    if (am == null)
    {
        return null;
    }
    try
    {
        InputStream is = am.open(fileName);
        image = BitmapFactory.decodeStream(is);
        is.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return image;
}
首先是获取AssetManager,然后调用其函数open,打开对应的资源文件

二、open函数追朔(Java层)

继续阅读“Android Assets打开调用过程源码分析”

Android中的文件打开读写调用过程

1、简述

一般的Android 在Java层对文件的读写调用主要有以下两个类:

(1)FileInputStream/FileOutputStream(FileReader/FileWriter)
(2)RandomFileAccess

FileInputSteam和FileOutputStream继承于InputStream和OutputStream,FileReader、FileWriter继承于Reader和Writer,它们的底层实现原理实现是一样的,区别在于前者用于字节型数据流读写,后者用于unicode文本流读写。

RandomFileAccess是一个独立的文件读写类,它与InputStream、OutputStream不同之处在于它更倾向与随机文件读写,类似C语言fopen、fread、fseek、fwrite、fflush、fclose的封装。

下面简要的分析三个操作的整个调用过程。

2、文件打开

一般在Java层调用如下:

File myFile = new File(“/data/local/tmp/test.java”);

FileOutputStream fos = new FileOutputStream(myFile);

首先我们找到File.java

继续阅读“Android中的文件打开读写调用过程”

Android逆向小工具-ida_auto_dydebug

dex2java3

一、工具产生的背景

每次动态调试,会敲各种各样的命令,而经常的debuger就会知道,调试过程很容易崩溃,然后又得重头来一遍,各种无意义的操作

因此这个工具,就是为了减少一些重复性,无意义的工作

由于没什么空,临时写的,所以v1,代码比较混乱,结构性,稳定性也相对较差,等有时间会继续开发

github星给的多,我就加紧熬夜!继续开发!!!

二、使用:

使用也相对简单,目前仅支持window平台,直接运行dydebug.bat文件即可。

说出来你可能不信,这种渣东西 都敢放出来

欢迎给想法、提bug

工具地址 : 继续阅读“Android逆向小工具-ida_auto_dydebug”

Android逆向小工具–am_auto_start

dex2java3

每次动态调试,都需要敲很多命令,特别是在脱壳的时候,一不小心就得再来一遍

所以想写个自动化脚本,直接一套搞定,但是,其中由于环境的问题,暂时没成功,网上案例并没有适用的,所以,先搞定其中的一个小工具,am-auto-start

这个工具的产生的背景是,每次 adb shell am start -D -n 包名/类名 找包名和类名,也是很苦恼,我是习惯命令敲完就关掉 [捂脸][摆手]

所以这个工具实现的功能就是,am-auto-start.py  apk , 即可启动MainActivity

Version 1仅适用于启动launch-activity

之后的版本,如果有需求,会更新到可以自定义启动各种组件。

github :   继续阅读“Android逆向小工具–am_auto_start”

Apktool源码分析

                   Android-studio

一、编译

1.源码下载: https://github.com/iBotPeaches/Apktool

2.编译可以直接使用Apktool目录下的gradlew.bat命令,这里使用了Android Studio来编译源码,为后续调试做准备。

3.导入源码,步骤:File–>open–>源码路径,或者在导航页面直接选择import project

4.点击右边的Gradle(注意这里按钮可能贴边上,仔细找一下),点开找到一个类似刷新的按钮,点击一下即可

5.编译:Apktool的主要类在brut.apktool:apktool-cli模块里,运行”fatjar”任务生成项目的jar文件。

继续阅读“Apktool源码分析”