编译TaintDroid2.3.4的时候,出现了http://willsunforjava.iteye.com/blog/1744626所描述的问题,链接博客中提供了一种方式解决neon code 的编译问题,但是编译出来的镜像刷到模拟器中,老是启动不成功。下面介绍一种方式来修改TaintDroid代码,来hack掉neon code 部分。
在源码的Dalvik目录中找到Atomic.c和Atomic.h,然后做如下修改。修改之后,编译后启动模拟器就正常了。
diff --git a/vm/Atomic.c b/vm/Atomic.c index 0f8ab34..1f86ebe 100644 --- a/vm/Atomic.c +++ b/vm/Atomic.c @@ -244,7 +244,7 @@ int64_t dvmQuasiAtomicSwap64FieldTaint(int64_t value, volatile int64_t* addr, ui } -#if __arm__ +#if 0//__arm__ // read 64-bit value followed by taint tag int64x2_t dvmQuasiAtomicRead64FieldTaint(volatile const int64_t* addr) { diff --git a/vm/Atomic.h b/vm/Atomic.h index ad5ecf2..b395eb2 100644 --- a/vm/Atomic.h +++ b/vm/Atomic.h @@ -52,7 +52,7 @@ int64_t dvmQuasiAtomicSwap64FieldTaint(int64_t value, volatile int64_t* addr, ui int64_t dvmQuasiAtomicRead32SfieldTaint(volatile const int32_t* addr); int32_t dvmQuasiAtomicSwap32SfieldTaint(int32_t value, volatile int32_t* addr, uint32_t taint); -#if __arm__ +#if 0//__arm__ #include <arm_neon.h> int64x2_t dvmQuasiAtomicRead64FieldTaint(volatile const int64_t* addr); #else
相关推荐
在软件开发过程中,有时我们需要查看已编译的.class文件的源代码,这时就需要用到反编译工具。反编译插件使得这个过程变得更加方便,而"eclipse 反编译插件"就是专为Eclipse设计的这类工具。 本插件具体为"org.sf....
### NEON编程指南知识点概述 #### 一、NEON简介 NEON是ARM架构中的一种SIMD(单指令多数据)技术,它为ARM处理器提供了一种高效处理多媒体和信号处理任务的方式。NEON通过一组专门设计的指令集来加速视频、音频、...
LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mtune=cortex-a8 LOCAL_LDLIBS := -lz TARGET_ARCH_ABI :=armeabi-v7a LOCAL_ARM_MODE := arm LOCAL_ARM_NEON ...
Eclipse Neon反编译器是Java开发者在使用Eclipse IDE时的一个重要工具,它允许开发者查看和理解已编译的.class文件的源代码,这对于学习和调试第三方库或处理没有源码的Java程序非常有用。这个压缩包"eclipse-neon-...
为了编译 hostapd,需要依赖 libnl 和openssl 库,本文将详细介绍 hostapd 的编译方法和过程中遇到的问题。 Libnl 库 Libnl 是一个 Linux 网络库,提供了网络协议栈的实现,hostapd 依赖 libnl 库来实现网络功能...
文件`What every programmer should know about memory.pdf`讨论了内存相关的性能问题,这对于利用Neon进行高效计算至关重要。优化内存访问模式、减少缓存未命中以及正确地对齐数据都可以显著提升Neon程序的性能。 ...
1. README或INSTALL文件:提供编译、安装和使用neon库的指南。 2.源代码文件:如src目录下的.c和.h文件,这些是neon库的核心代码。 3. configure脚本:用于检测系统环境并生成Makefile,帮助用户进行编译。 4. ...
neon_osd_Draw是一个基于C语言开发的ARM Neon加速OSD点阵项目...该项目为用户提供了一个全面、高效的ARM Neon加速OSD点阵解决方案,支持1bit转2Byte以及YUV420和YUV422格式的YUV OSD叠加,具备良好的用户体验和实用性。
SSE2NEON项目就是为了解决这个问题,通过编写一套函数接口,使得原本使用SSE2编写的代码可以在ARM处理器上使用NEON指令集进行等效的高效运算。 项目"sse2neon-master"可能包含以下部分: 1. **头文件**:定义了与...
5. **内存分析插件MAT(Memory Analyzer Tool)**:MAT是一个强大的内存分析工具,可以帮助开发者检测和解决Java应用中的内存泄漏问题,通过分析heap dump文件来找出占用内存最多的对象和对象链,从而优化应用程序...
如果你在使用Subversion时遇到错误,安装或更新到`neon-0.28.2`可能就是解决问题的关键。 在Subversion教程中,`neon`库通常被提及是因为它是Subversion客户端与服务器通信的基石。当你通过HTTP或HTTPS协议与...
Eclipse Neon.3还加强了集成开发环境的性能,减少了启动时间和内存占用,提高了代码编译速度。这使得大型项目开发时,Eclipse能更快响应,降低了开发者等待时间。 在版本控制方面,Eclipse Neon.3集成了Git,提供了...
使用GCC交叉编译工具链4.9.4,开发者可以在Linux(如Ubuntu)环境下编写和编译针对ARM Cortex-A7处理器的代码,并利用NEON指令集进行优化。这在开发嵌入式设备、移动设备或者物联网应用时非常常见,因为它允许在高...
在编写NEON汇编时,需要注意对齐问题,因为不正确的数据对齐可能导致性能下降甚至程序崩溃。 **NEON优化技巧** 1. **向量化**:将循环内的独立操作转换为向量操作,一次处理多个数据。 2. **数据预取**:预测并提前...
4. 编译和安装:执行`make`命令进行编译,然后使用`sudo make install`将编译好的neon库安装到系统路径中。 5. 验证安装:通过运行`ldconfig`命令更新动态链接库缓存,然后可以尝试运行`neon_test`等测试程序,以...
Neon2版本中,调试器支持多线程调试,可以设置断点、查看变量值、单步执行等,对于找出并解决程序中的问题非常有帮助。 5. **代码质量和性能分析**:内置的Code Style和Code Analysis工具,可以帮助开发者遵循最佳...
标题“neon-plugins2”和描述“eclipse-neon-plugins”揭示了这是一组与Eclipse Neon相关的插件。Eclipse Neon是Eclipse IDE的2016版本,它提供了丰富的开发工具支持,包括Java、Web、移动和云计算应用的开发。这个...
开发人员在使用这个库时,需要了解如何在Android应用中正确链接和使用这些动态库,包括设置NDK路径、配置CMake或Build.gradle文件,以及处理权限和多线程问题。此外,熟悉FFmpeg的API,了解如何初始化、解码、编码、...
使用NEON内联函数可以不关注寄存器分配和互锁问题,简化编程过程,提高程序的执行效率。但是,内联函数的灵活性和功能并不如手写汇编语言丰富。 3. 汇编语言优化:通过编写底层的汇编语言,可以直接对处理器的NEON...
标题“Neon2012.4.8”和描述中的信息非常有限,没有提供具体的IT知识点。然而,从标签“Neon2012.4.8”以及压缩包内的唯一文件名“Neon2012.4.8”,我们可以推测这可能是一个软件版本或者更新的标识。为了提供更丰富...