安卓
文章平均质量分 65
安卓工程开发相关记录
炒番茄
android framework,逆向,virtual app
展开
-
java层Throwable->nativeFillInStackTrace分析
背景:1.研究java层堆栈获取原理2.进一步提升自己对art的理解本文选择Throwable->nativeFillInStackTrace这个切面入手源码lineage-18.1admin@C02D7132MD6R art % grep nativeFillInStackTrace -rn *runtime/native/java_lang_Throwable.cc:28:static jobject Throwable_nativeFillInStackTrace(JNIEnv* e原创 2021-09-26 12:29:45 · 585 阅读 · 0 评论 -
ROM-libcore中新加java文件编译报错
背景:1.安卓9之前,libcore中有一个libcore/io/EventLogger.java,但是安卓10之后却没有了2.EventLogger可以将进程中所有的event事件,收敛到这里,所以可以在代码中任何地方加埋点,然后简单调用writeEvent public static void writeEvent(int code, Object... list) { getReporter().report(code, list); }代码改动:Aosp a原创 2021-09-26 11:57:18 · 2061 阅读 · 0 评论 -
hiddenapi运行时监控
目的为第三方app提供运行时hidden api访问情况。google提供了veridex工具,静态分析app所使用的hidden api。但是静态分析的结果可能不全,比如dex动态加载,加固等。先了解一下开发者是如何访问hiddenapi的1.通过反射,比如java.lang.Class;->getDeclaredField2.通过env->GetFieldID等该篇只谈反射的方案,如何通过ROM定制进行监测getDeclaredField打点下面是aosp10.0的源码贴图(原创 2021-08-09 23:09:04 · 580 阅读 · 0 评论 -
base64移植笔记(android)
base64源码位置:android-11.0.0_r36aosp/external/wpa_supplicant_8/src/utils/base64.caosp/external/wpa_supplicant_8/src/utils/base64.h/* * Base64 encoding/decoding (RFC1341) * Copyright (c) 2005, Jouni Malinen <j@w1.fi> * * This software may be dist原创 2021-07-06 20:29:26 · 238 阅读 · 1 评论 -
md5移植笔记(android)
md5移植目的:1)生成md5core_static.a静态可执行文件2)libtestLib.so依赖md5core_static, so库的release版本需要抹去md5的符号源码比较少,贴这里md5.h源码中修改了BASE_EXPORT这个宏了,如果不修改,libtestLib.so库中的md5相关符号会导出#define BASE_EXPORT __attribute__((visibility("hidden")))#define BASE_EXPORT_PRIVATE __att原创 2021-07-06 19:40:18 · 319 阅读 · 0 评论 -
记录AOSP源码编译刷机(pixel 4a)
查找pixel 4a所对应的branch分支我选择了第二行,其补丁级别也是比较新的。build ID标记版本支持的设备安全补丁程序级别RQ2A.210505.003android-11.0.0_r37Android11Pixel 4a (5G)、Pixel 52021-05-05RQ2A.210505.002android-11.0.0_r36Android11Pixel 3、Pixel 3a、Pixel 3a XL、Pixel 3 XL、Pixel 4、P原创 2021-07-06 18:18:17 · 2709 阅读 · 0 评论 -
代码备忘录(CMakeLists.txt)
CMakeLists.txtCMAKE_BUILD_TYPEstring(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower)if(cmake_build_type_lower STREQUAL "release") message(VERBOSE "begin build release") set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_C_VISIBILITY_P原创 2021-07-06 17:47:52 · 733 阅读 · 0 评论 -
Java层文件系统监控简单实现
Java层文件系统监控简单实现在阅读android 10的aosp源码 framework/base/core/java/android/app/ActivityThread.java时候,看到了AndroidOs这个新东西,发现是一个IO回调,挺有意思aosp/libcore回调机制比如File.delete函数 public boolean delete() { SecurityManager security = System.getSecurityManager();原创 2021-04-24 16:46:49 · 430 阅读 · 0 评论 -
混合二叉树移植java版本
混合二叉树移植java版本**安卓property_service代码移植供app开发使用(上)**安卓property_service代码移植供app开发使用(下)代码可直接去github查看重要的几个java classKVManager.java 单例模式,第三方使用者只需要关注该java累就可以了DataOper.java 真实的数据结构操作类DataArea.java 数据结构模块DataNode.java 树节点DataInfo.java 真正存储value 的类如何使用该原创 2021-04-23 19:34:49 · 104 阅读 · 0 评论 -
maven配置
maven配置Mac 电脑环境admin@C02D7132MD6R % vim ~/.zshrcMAVEN="/Users/admin/env/apache-maven-3.8.1"export PATH="/usr/local/opt/python@3.7/bin:/usr/local/opt/openjdk@8/bin:$MAVEN/bin:$PATH"admin@C02D7132MD6R apache-maven-3.8.1 % pwd/Users/admin/env/apache-原创 2021-04-20 17:46:54 · 112 阅读 · 0 评论 -
抓包 导入Fiddle crt证书至手机为安卓系统证书
抓包 导入Fiddle crt证书至手机为安卓系统证书将Fiddle everyWhere证书导出到桌面证书转换crt/der转pemadmin@C02D7132MD6R xx % openssl x509 -in FiddlerRootCertificate.crt -inform DER -out certificate.pem -outform PEMadmin@C02D7132MD6R DiskMigrate % crc32 certificate.pem d31f17c5adm原创 2021-04-16 19:08:07 · 1042 阅读 · 1 评论 -
魅族手机文件删除-通知栏警告流程分析(下)
魅族手机文件删除后通知栏警告流程分析下先将魅族手机中的关键jar包pull出来贴这里MediaProvider.apk链接: https://pan.baidu.com/s/1HT4FETwg9KS_8ewctSNEiA 提取码: hwme/system/framework/framework.jar链接: https://pan.baidu.com/s/16RgA2XGlunzSxjjr8NpX7Q 提取码: meek/system/framework/services.jar链接: htt原创 2021-04-07 23:22:42 · 21111 阅读 · 4 评论 -
魅族手机文件删除-通知栏警告流程分析(上)
该篇文章讲解文件监控原理,虽然题目为魅族手机,其实监控原理与aosp源码一致,所以我先用了root的pixel 4a进行分析写了一个app-demo,进行简单的文件删除操作: File oldPath = new File("/storage/emulated/0/libs/3.txt"); try { oldPath.delete();原创 2021-04-07 21:55:48 · 1900 阅读 · 1 评论 -
安卓property_service代码移植供app开发使用(下)
安卓property_service代码移植供app开发使用(下)1.移植目标1)移植混合二叉树算法2)移植后可将property键值对改为普通的key–value。 安卓系统的key默认是以.分割的,其实我也建议大家移植后的key也具有某种分隔符,或者具有某种树形结构关系。否则,移植该算法也没啥用处。可支持多进程。 安卓系统的property_service,支持多进程设置-获取属性,只不过属性最终是通过socket的方式传给init进程进行设置的。其实我们从context上下文通原创 2021-03-31 21:13:44 · 251 阅读 · 0 评论 -
安卓property_service代码移植供app开发使用(上)
安卓property_service移植供app开发使用(上)源码基于aosp_7.1()位置/bionic/libc/bionic/system_properties.cpp1: 先来看官方的注释:/* * Properties are stored in a hybrid trie/binary tree structure. * Each property's name is delimited at '.' characters, and the tokens are put * in原创 2021-03-22 17:54:09 · 541 阅读 · 0 评论 -
镖人-手游安全分析一(mac电脑环境)
镖师-手游安全分析一(mac电脑环境)本文是第一篇,主要是要将il2cpp的符号还原。先使用7z命令,将apk解压缩,查看一下游戏使用的引擎admin@C02D7132MD6R 镖师 % 7z x base.apkadmin@C02D7132MD6R 镖师 % ls lib/arm64-v8a lib39285EFA.so libcocklogic-1.1.3.so libmilinkconnection.so libspeechengine.so libttvebase.solib原创 2021-03-20 20:31:46 · 2307 阅读 · 0 评论 -
Java层使用pipe完善阻塞式编程
Java层使用pipe完善阻塞式编程背景java层while循环,如果是非阻塞的循环,会极度浪费cpu资源,也会导致耗电严重,app被吐槽。Android系统层一般会使用消息通知机制,比如:looper机制,无消息时就会阻塞。linux IO多路复用linux pipe管道具体的就不多说了,我们今天的主题是java层使用pipejava层有很多阻塞类可使用,比如ConditionVariable通过源代码代码可以看到,block函数其实使用了wait, notify。作用:Conditi原创 2021-03-19 20:37:06 · 385 阅读 · 0 评论 -
安卓so版本ndk版本查看以及strip命令的使用
安卓so版本ndk版本查看以及strip命令的使用本人的电脑为mac,所以只谈mac使用file命令file libc++_shared.so输出:libc++_shared.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=e2abf2cdb6028797b0eae31bedb64809ae86fed1, with debug_info, not原创 2021-03-15 13:49:53 · 6308 阅读 · 0 评论 -
安卓多仓c++运行时统一规范化
多仓libc++_shared.so版本规范化c++运行时简介被墙的原因,先贴一下google的介绍C++ 运行时库表 1. NDK C++ 运行时和功能。名称功能libc++现代 C++ 支持。systemnew 和 delete。(在 r18 中已弃用。)none无头文件,有限 C++。libc++LLVM 的 libc++ 是 C++ 标准库,自 Lollipop 以来 Android 操作系统便一直使用该库,并且从 NDK r18 开始成为 N原创 2021-03-14 17:19:21 · 1759 阅读 · 0 评论