- 博客(86)
- 资源 (40)
- 收藏
- 关注
原创 Aosp 15 编译遇到问题排查
到 device/google/raviole-kernels/ 目录下看只存在5.10的内核版本,咋办?在执行 lunch 原来熟悉的选择就有了。我这里选择pixel 6 谷歌手机。lunch 选择 28。下载完成之后发现跟14 系统有很大区别。最近想编译aosp 15 的系统。再次lunch 成功 ,然后make 编译。这里只需要敲enter 键选择默认配置,原来熟悉lunch 选择界面没有了。从谷歌官方源码下载一个呗,但是执行到这里会报错。
2025-02-05 20:02:24
449
原创 frida hook InMemoryDexClassLoader内存加载实现dump dex文件
import frida, sysmyflag = Falsedef on_message(message, data): global myflag if message['type'] == 'send': print("data--------=",data) #print("[*] {0}".format(message['payload'])) print("type=",type(message['payload']))
2021-10-25 17:19:51
1040
原创 安卓获取APP对应的Android id的原理分析
android_id 的生成原理是由系统生成的随机数,并与应用 app 签名,经过 HmacSHA256 算法生成的;从 android 8 以后开始就是随机的了,每个应用获取到的简要步骤;获取的方式如下所示:androidId = android.provider.Settings.Secure.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);...
2020-11-13 17:04:30
1941
原创 阿里云搭建git + repo 的rk3326源码无限制仓库记录
最近帮朋友搭建一个阿里云代码服务器。简单记录一下过程。源码: rk3326android 8.0服务器: 阿里云阿里云服务端: 简称 Server管理端: Admin客户端: client1、首先在服务的新建git 用户sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git git这种方法是网上比较常见的方法,创建的是一个禁用密码的
2020-07-20 09:43:48
760
原创 Android串口丢包重发的重传协议,一种流式重传协议
前言最近在做一款产品,主要功能是android 接收到音频数据通过串口实时发送MCU处理,要求延迟小,速度快,传输稳定性有保障。我们都知道串口是一种不可信任性传输。不能保障传输数据完整性,在产品测试过程中也发现低概率性出现数据丢包现象。所以需要设计一种支持流式可靠性传输协议。产品需要Android串口跟MCU串口通信传输音频流,每次传输大概1M左右,MCU接收到音频后需要立马处理,所以需要尽可能快接收数据处理,不能接收每一帧会回传校验结果。只有等到有错误帧才返回给Android 请求重发错误帧,如果一次
2020-07-16 16:32:50
1566
2
原创 android一键改机之真改机build.prop
本篇文章讲解如果真正修改手机硬件参数。app 会通过判断当前手机的imei、mac、imsi等参数来判断此手机多次注册过app。一般情况下的权重是 imei > imsi > mac > android_id 。Android 获取 imei 等信息的源码主要在TelephonyManager.java中,app 能获取这些参数只有这一种途径,通过adb 和shell是获取...
2020-02-12 12:47:00
12605
8
原创 动态修改Android参数信息的方法绕过改机检测
有很多朋友咨询过我如果修改Android的系统参数 比如 ro.build.id ro.product.name ro.product.device ro.product.model等参数。对应在APP端的java代码就是Build.ID Build.PRODUCT Build.MODEL等参数。不同于Xposed VirtualApp 双开助手DualSpaceGo双开双开精灵 这些软...
2019-12-23 13:08:05
4915
原创 repo 切换分支一种简单的方法
在Android开发中有时候要切换Android 版本,当前版本是android-8.1.0_r2如果我想切换到Android 9.0 的版本android-cts-9.0_r2可以进入到Android 根目录下.repo/manifests/.gitvim config[core] repositoryformatversion = 0 filemode ...
2019-12-06 16:55:13
4144
原创 Android 8.1 添加属性SystemProperties.set可执行权限
在Android 8.1由于selinux权限的限制。默认SystemProperties.set执行报avc denied,即使给 app android:sharedUserId="android.uid.system"权限也不行,如果想执行必须修改一些文件。device/mediatek/sepolicy/basic/non_plat/property.tetype persist_de...
2019-12-02 14:25:24
6751
1
原创 使用命令生成update.zip以及添加升级包检验签名功能
一般普通ota升级都是直接调用RecoverySystem.installPackage,让系统进入recovery,然后在recovery升级Android系统,但是存在一个缺点。如果他人使用非系统签名的update.zip升级包。也会使系统进入recovery模式。然后升级失败。死在recovery模式。所以每次升级之前要校验签名使用相同。 使用api接口是RecoverySystem....
2019-12-02 14:25:04
7096
原创 Android GpioService从app到驱动
因为最近项目Android要用到APP控制相关GPIO控制,因为网上大部分都是app直接通过JNI控制GPIO,这样做存在一个问题,GPIO被多个app打开会报错。同时也违背了Android设计初衷。这里demo也是从其他项目拷贝过来的。自己修改的。源码使用的是Android 5.1 的rk3288.使用控制led灯的方式来实现gpioservice。 通过JNI方式一般流程是app-&...
2019-12-02 14:24:54
2012
原创 Android 使用非阻塞的方式读写串口
上一篇博客简单介绍了Android 串口使用demo,项目开发中由于app 同学要求 例如 getMcuversion() 返回值是 当前单片机版本号,由于我们串口是阻塞的 ,所以我们接收到串口返回值后,readthread 仍不会结束。所以传递当前read结果防是有两种,一种通过handler方式将read结果发给getMcuversion(){},但是我们无法预知何时能读到结果。另外一种就是...
2019-12-02 14:24:40
3218
原创 Android 8.1 关机
之前发送Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");会报android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.ACTION_REQUEST_S...
2019-12-02 14:24:24
2510
原创 Android 8.1 添加 自定义可切换桌面
现在产品有一个需求,在工厂测试的时候启动时Android原生桌面launcher3,测试完毕后启动我们产品默认的app。所以自己在Android启动 桌面的时候做一个属性判断,如果属性persist.defaulthome = false就启动launcher3, = true就启动我们产品app。在Android 8.1 有seLinux权限管理很严格...
2019-12-02 14:24:12
1567
原创 Android 64位机器system app兼容32位apk问题分析(共享system uid )
rk3399 是一款基于arm64的机器,我们这边一款产品是基于rk3399 Android 7.1版本的开发,我们的 vtest.apk包含多个so,在正常userdebug模式下不会出现兼容性问题,如果切换到user版本就会出现概率性崩溃的问题。并且崩溃不是vtest.apk而且其他system apk 比如StressTest、 keychain、exchange等apk 概率性崩溃。首...
2019-12-02 14:23:53
4583
1
原创 Android编译预制过高版本app导致编译错误解决
先上错误代码No private recovery resources for TARGET_DEVICE rk3399_firefly_mipi_boxStarting build with ninjaninja: Entering directory `.'[ 50% 1/2] build out/target/product/rk3399_firefly_mipi_box/obj/A...
2019-12-02 14:23:41
9068
9
原创 Android串口Serial服务解析
正常Android设备的串口一般是用作debug调试使用,随着Android设备使用越来越广,比如智能pos、智能扫码机都会用到Android主板和单片机进行通信,如果Android主板和单片机通信数据量大可以使用USB,若是通信数据量小可以使用串口进行通信,因为串口通信简单并且稳定性高,最近做的一个项目就是Android使用串口和加密芯片进行通信,Android主板使用的是rk3288和rk33...
2019-12-02 14:22:54
10917
6
原创 Android 8.0 system app加载so Permission denied 解决
在预置包含react native 的Android app 预置到mtk 6739的系统中,此app 具体 platform 签名。此app启动会加载一些 facebook的so库发现此app 如果预置到system/app下,启动会报错。开始以为是没有把相关的so库 放到 system/app/xx/lib 下。在Android 6.0我都是可以正常启动的。发现在8.0 仍然会报错。报...
2019-11-06 11:09:38
10543
1
原创 android 实现 APP 保活且正常升级的方法
翻译机App保活技术调研报告Android系统核心App需要在Android开机期间一直后台运行,如果被杀死会立即重启。这个功能的实现是在App的AndroidManifest.xml添加android:persistent="true"属性控制。但是Android 8.0之后含有Persist的App禁止升级。如果我们把翻译服务相关的Ap设置android:persistent="true"...
2019-10-24 11:25:43
4741
15
原创 android app模拟 persistent 属性可以保活且正常升级的一种方式
背景:Android系统核心App和Service需要在Android开机期间一直后台运行,如果被杀死会立即重启。这个功能的实现是在App和Service的AndroidManifest.xml添加android:persistent="true"属性控制。但是Android 8.0之后含有Persist的App和Service禁止升级。如果我们把服务相关的App和Service设置androi...
2019-09-24 09:00:30
3415
原创 修改系统时间导致logcat read: unexpected EOF!崩溃
如果机器如果把当前系统时间往前调整(比如当前8月20日11点调整为8月18日9点),翻译机的logcat的buffer就会出现一直增大,超出系统设定的最大buffer size,比如当前是设置是4M ,但是通过logcat -g 可以达到7M,明显超出系统设置最大buffer。直到logcat输出出现read: unexpected,logcat崩溃退出。如下图所示:这几天我正在尝试解决...
2019-08-22 14:15:52
1247
4
原创 Android 添加中文medium字体
2.1 Android字体显示框架图Android显示字体medium字体主要流程:a).View布局文件或者代码中选择medium字体b).Framework根据View设置的字体选择相应medium的字体库c).根据framework提供的字体库Skia引擎绘制相应medium的字体主要流程图如下:3. NotoSansCJKsc-Medium中文字体使用方法Android可以...
2019-08-21 08:57:34
8578
原创 Android log日志系统分析-logcat源码解析
Android为我们提供了一个十分方便的命令行工具来读日志。Logcat 是一个命令行工具,用于转储系统消息日志,其中包括设备引发错误时的堆叠追踪以及从您的应用。借用别人的一张图,显示 logd的框架在Android 开机时候 huLogcat工具源代码位于system/core/logcat目录下,编译后生成的可执行文件位于out/target/product/generic/syste...
2019-08-20 16:02:10
6445
原创 Android 手机开机不断重启故障分析
1、目前拿到编号为066E的故障翻译机,通过Android logcat日志分析初始报错现象是Android系统的zygote的AndroidRuntime在不断重启。具体现象如下:1. 07-26 07:48:43.625 2378 2378 D AndroidRuntime: >>>>>> START com.android.internal.os...
2019-07-04 20:29:49
5312
4
原创 yocto源码下载
1、首先下载repomkdir ~/bin (this step may not be needed if the bin folder already exists)curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo因为国内防火墙的原因,把repo 的url 地址改为国内REPO_UR...
2019-05-31 13:55:17
1140
原创 imx8 编译 yocto报错问题解决
编译 yocto 版本报如下错误NOTE: recipe libwebp-0.6.1-r0: task do_populate_sysroot: SucceededNOTE: Running task 2647 of 8130 (/home/blv/workdata/imx-yocto-test/sources/poky/meta/recipes-extended/gzip/gzip_1.9....
2019-05-30 15:43:59
4039
原创 imx8开发之~自动编译脚本编写
系统编译的总编译脚本#!/bin/bashsource build/envsetup.shlunch mek_8q-userdebugmake -j4./make_uboot.sh./make_kernel.sh./make_boot_dt.sh 编译 uboot 脚本#!/bin/bashsource build/envsetup.shlunch mek_8q-userd...
2019-05-10 17:26:04
1104
原创 rk3288 双摄使用camera2开发
本文是基于rk3288 usbcamera这篇文章的更新版本,上篇文章 是基于第三方框架UvcCameraDemo开发的。自己想基于Android系统提供的camera2的接口开发。由于我们的usb接口不是在主host上,报错如下02-27 06:36:02.674 2425 2494 E RequestThread-0: Timed out while waiting for request...
2019-05-09 16:22:43
3101
2
原创 基于九鼎核心板的rk3288 双屏开发
rk3288支持双屏异显,一般使用的是mipi、lvds 和HDMI进行异显示,我们这边使用的是mipi和lvds。mipi 是主屏10寸。lvds副屏7.85寸。双屏显示要注意以下问题1、双屏异显时,一个显示接口当主屏,另一个当副屏;主副屏由板级dts文件确定,启动后无法动态更改;2、 当两路显示接口显示不同分辨率时,rk3288只能为一路显示接口提供精确时钟,另一路显示接口时钟会有微小频...
2019-05-09 14:58:07
2654
原创 imx8开发之~源码编译
首先要下载相关的工具链In addition to the packages requested on the Android website, the following packages are also needed:$ sudo apt-get install uuid uuid-dev$ sudo apt-get install zlib1g-dev liblz-dev$ sud...
2019-04-30 09:40:07
3380
原创 imx8开发之~源码下载
由于imx8新出的,市面上资料很少,所以自己把遇到问题写出来imx8 源码下载路径,如果没有账号就申请一个,由于我们是做无人驾驶公交的方向,所有我们选择的是自动驾驶版本。android_o8.1.0_2.0.0_auto-beta_image_8qmek2.tar.gz下载网址https://cache.nxp.com/secured/bsps/android_o8.1.0_2.0.0_...
2019-04-24 18:14:48
2776
2
原创 Android 双usb 摄像头支持
公司有一款产品需要支持双USB摄像头,标准的Android设备只支持同时打开一个camera,若要支持两个显示需要修改rk3288 源码,hardware/rockchip/camera/CameraHal/CameraHal_Module.h#define CAMERAS_SUPPORT_MAX 2#define CAMERAS_SUPPORTED_SIMUL_MA...
2019-04-16 11:06:04
3398
1
原创 rk3368禁止显示luncher和开机启动的壁纸
修改地址如下:rameworks/base/core/res/res/values/config.xml因为有点懒就直接列出diff 差异 <string name="image_wallpaper_component" translatable="false">com.android.systemui/com.android.systemui.ImageWallpaper&
2019-01-11 10:20:43
584
原创 rk3368一些定制修改
因为这些改动都是很早之前做的,也不想分析为什么这么改了,只是简单列出来修改代码。文件去除rk3368 双击电源键打开摄像头frameworks/base/core/res/res/values/config.xml删掉这一行<bool name="config_cameraDoubleTapPowerGestureEnabled">true</bool>设置...
2019-01-11 10:20:05
2530
原创 react学习--左手法则走迷宫
&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content=&
2019-01-09 10:43:54
2002
原创 react学习之--方向键走迷宫
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &
2019-01-09 10:31:29
366
原创 多次点击camera键或者电源键 调起app
当时这个需求是,连续点击camera键启动扫码app。由于怕和其他app共享一个广播,所以自己定义了一个广播ACTION_CAMERA_BUTTON.DC扫码app监听ACTION_CAMERA_BUTTON.DC这个广播。修改文件frameworks/base/policy/src/com/android/internal/policy/impl/PhoneFallbackEventH...
2018-12-26 14:20:08
390
原创 禁止状态栏下拉
源码文件frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java public void disable(int state) { //add start state = state | StatusBarManager.DISABLE_NOT...
2018-12-26 14:07:43
1247
3
原创 Android 4.2寸屏幕显示4.0的效果
我们之前有一款产品,显示屏时4.2寸的,但是屏幕模组是4.0寸的,导致显示的时候,Android系统状态栏有很小的一部分被遮住了,显示不全。就想着能不能修改系统默认显示大小,解决这个问题。平时大家调试app适配的时候,经常会使用wm工具wm size可以查看当前屏幕分辨率,也可以设置屏幕分辨率(当然也就一般调试问题wm size)。eg: wm size 720x1280这是我们当前...
2018-11-20 14:27:38
941
Android源码demo.zip
2019-12-27
android 保活对应的patch
2019-10-30
fastboot.ps1
2019-10-24
persist.zip
2019-09-24
DoubleCamera.zip
2019-05-09
Android版本的sysbench工具
2017-11-21
声波配网连接wifi(ssid和pwd)
2017-09-21
Wireshark程序
2017-09-13
python 通过adb 查看Android系统状态脚本
2017-09-13
ch340 win7 64 位驱动
2017-09-13
Android settings源码
2017-09-13
android的sensor的hal层独家密码
2014-07-10
尚观培训全套代码
2012-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人