最近把Ubuntu升级到 24.04,编译AOSP遇到一些问题,这里做一下记录。
遇到的警告是标题名“Build sandboxing disabled due to nsjail error”
消息监控工具的一种实现思路
本文字数: 990 阅读时长 ≈ 4 分钟
在 今日头条 ANR 优化实践系列 - 监控工具与分析思路 文中描述到使用了一种名为“Raster”的工具来做消息监控,对于ANR比较有用。但是在网络上没有搜到这个工具的具体实现方案。
本文来设计一种类似的消息监控的实现思路。
今日头条 ANR 优化实践系列 - 监控工具与分析思路
本文字数: 9.9k 阅读时长 ≈ 36 分钟
前言:这篇文章是一篇转载文章用,用来为后面的一些文章做铺垫。
转载链接为 今日头条 ANR 优化实践系列 - 监控工具与分析思路,如有侵权,请在 GitHub 提 Issue 联系我。
安卓 RemoteCallbackList 的使用 (系统服务篇)
本文字数: 2.3k 阅读时长 ≈ 8 分钟
安卓 RemoteCallbackList 的使用 (应用篇)
本文字数: 3k 阅读时长 ≈ 11 分钟
通过aidl,我们可以实现client(后称客户端)和server(服务端)的双向通信,有时候server和client处于不同的进程当中,如果client意外退出,server再向client发送消息的话,就有可能导致server端也退出。
安卓提供了 RemoteCallbackList 来为我们隐式解决了这种问题。
下面来看一个示范。
使用 workflow 来中转 http 请求
本文字数: 652 阅读时长 ≈ 2 分钟
Sogou 的 workflow 是一个 C++ 编写的简单易用的 web 框架,这里我对官方的 http_proxy 做一点简单修改,来实现抓包。
通常的抓包是设置代理服务器来实现的,我这里不通过代理,而是 http_proxy 作为一个中继一样的存在。
把官方的 http_proxy 修改成下面的样子
C/C++ 中,modulus,privateExponent, pulbicExponent 如何转换成 RSA密钥
本文字数: 498 阅读时长 ≈ 2 分钟
p.s: 以下内容均以 openssl 实现。
RSA 密钥的存储方式有很多,某些情况下,我们直接保存密钥的 modulus(n),publicExponent(e),privateExponent(d),使用的时候再将它们转换成 RSA 密钥。下面来讲讲在 C/C++ 环境中,如何把这几个大整数转换成 RSA 密钥来用。
根据 openssl 的文档,openssl提供了这样一个函数
为 Android 编译 openssl 的注意事项
本文字数: 532 阅读时长 ≈ 2 分钟
以下载链接 https://www.openssl.org/source/openssl-1.1.1o.tar.gz 为例
下载解压之后,查看根目录的 NOTES.ANDROID,其中有
1 | export ANDROID_NDK_HOME=/home/whoever/Android/android-sdk/ndk/20.0.5594570 |
这里就是最直接的编译方式了。但是这样编译之后,会有一个坑
使用 openssl 进行 AES128/ECB/PKCS5Padding 加解密
本文字数: 424 阅读时长 ≈ 2 分钟
在 java 上进行 AES128/ECB/PKCS5Padding 加密解密是很简单的
Android Native Service 示例 第二篇
本文字数: 2.6k 阅读时长 ≈ 9 分钟
在安卓里面实现一个 native 的系统服务,不仅可以通过定义 Interface ,还可以通过直接继承 BBinder 来实现。本篇文章即讲述如何通过继承 Bbinder 来实现一个系统服务,并且讲述如何在 native 上使用 binder 的 linktoDeath 机制