自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夏菠

Android Framework 机器学习 嵌入式

  • 博客(208)
  • 资源 (23)
  • 收藏
  • 关注

原创 Android N 指纹框架

1. 指纹框架UML2. Fingerprint2.1 Fingerprint数据流图FingerprintManager API. 直接与应用程序交互的API,属于当前APP进程.每个应用程序都可以获取FingerprintManager.FingerprintManager主要是应用程序与FingerprintService的交互封装Fingerprint...

2018-05-09 19:59:20 3420

原创 基于Vivado HLS在zedboard中的Sobel滤波算法实现

基于Vivado HLS在zedboard中的Sobel滤波算法实现平台:zedboard + Webcam工具:g++4.6 + VIVADO HLS + XILINX EDK + XILINX SDK系统:ubuntu12.04总体设计思路sobel 算法理论基础索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是...

2014-09-13 20:45:04 8972 17

原创 Zedboard VmodCAM PIN Constraint

自己画了一块FMC-VHDCI四层板,外接VmodCAM,接口定义如下#CAMA PIN CONSTRACTNET "CAMA_D_I[7]" LOC = T17 | IOSTANDARD = LVCMOS33;NET "CAMA_D_I[6]" LOC = T16 | IOSTANDARD = LVCMOS33;NET "CAMA_D_I[5]" LOC = M21 |

2014-05-18 13:54:57 2363 7

原创 zedboard 构建嵌入式linux

zedboard嵌入式LINUX搭建

2014-04-10 20:48:19 7725 8

原创 android内联优化导致Inlined method resolution crossed dex file boundary

最近App在android11上出现了一个诡异的native 崩溃,很不容易出现,但都是有个特点就是安装App后过一段时间才会出现,杀进程没用,覆盖安装同一个apk,崩溃立刻消失,日志为如下:1243 08-02 15:44:16.921 18134 18134 F pace.android:p: entrypoint_utils-inl.h:101] Inlined method resolution crossed dex file boundary: from void com.xxx.l1ll1l

2021-08-04 10:40:03 832 1

原创 Pixel修改kernel内核调试

下载内核源码git clone https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git准备环境需要Android源码下的交叉编译器,在Android系统源码下source build/envsetup.shlunch aosp_sailfish-userdebug修改系统调用修改syscall open和kill的实现index 1d33f28..e40deb5 100644--- a/drivers/thermal/thermal.

2020-05-29 18:15:25 2246

原创 Android coredump分析加固so

修改系统代码如下xiabo@VM-DEV:~/android-q/system/core/rootdir$ git diff diff --git a/init/property_service.cpp b/init/property_service.cppindex f2c7462..ef8e800 100644--- a/init/property_service.cpp+++ b/init/property_service.cpp@@ -742,6 +742,23 @@ static vo

2020-05-16 17:35:07 512

原创 Android逆向-GDB调试无符号so

工具准备下载ndk将gdbserver push到手机,如果目标进程是64位的则push 64位的gdbserveradb push android-ndk-r14b/prebuilt/android-arm/gdbserver/gdbserver /data/local/tmp/编写目标程序创建 assembler工程// Android.mkLOCAL_PATH:= $(...

2020-03-25 18:40:24 711

原创 Vdex格式

2019-12-26 10:44:38 950

原创 简单的禁止应用被双开的方法

前段时间发现一个应用被双开后,不能同时在一个手机上登陆两个账号,登陆A之后,B会被踢下线。刚开始还以为有什么黑科技,或者有名管道,本地socket之类的,或者是向sd卡写了什么文件,这几种方案都检查了,没有效果。没办法只能分析它的逻辑了,应用是加固了的,脱壳之后分析其原理。偶然通过netstat命令发现了这个应用监听了一个端口,发现原来用了这么简单的一种方法防止双开,既没有读取IMEI,IMS...

2019-11-05 09:42:22 3397 1

原创 JEB编写脚本

通过编写jeb的python脚本,用来解密java的加密函数,如下图得aa.E就是一个加密函数,如果脚本运行完成,这个应该被替换成解密后得字符串。我得方法就是遍历每个函数调用,然后找到目标方法,替换成解密后得字符串。结果就是简单得赋值语句能成功替换。#-*-coding: utf-8 -*- import stringimport re,collectionsimport sysf...

2019-10-24 16:44:41 1956 1

转载 WeakHashMap的回收机制分析

(转载)[https://www.ktanx.com/blog/p/288]在Java中,一般人对于WeakHashMap的理解都是:当某个键不再被使用时,将自动移除回收其条目。WeakHashMap真的是自动移除回收其条目的吗?看了下WeakHashMap的实现源码,主要是通过expungeStaleEntries这个函数来实现回收的,基本上WeakHashMap中所有的public方法都...

2019-10-24 15:18:15 448

原创 为什么wait()一定要放在循环中

在多线程的编程实践中,wait()的使用方法如下:synchronized (monitor) {// 判断条件谓词是否得到满足while(!locked) {// 等待唤醒monitor.wait();}// 处理其他的业务逻辑}那为什么非要while判断,而不采用if判断呢?如下:synchronized (monitor) {// 判断条件谓词是否得到满足if...

2019-10-24 15:16:44 636

原创 Android java脱壳(修改art源码方案)

9.0 aosp 修改源码地方:android-p/art/runtime/dex/art_dex_file_loader.ccOpenCommon函数中添加7.0 8.0 8.1 修改源码地方:android-p/art/runtime/dex_file.ccOpenMemory函数添加 ALOGD("OpenMemory begin... %s", path.c_str());...

2019-10-24 15:03:44 1098

原创 linker打开log开关

linker在设计之初就为广大码农提供了便利 // Get a few environment variables. const char* LD_DEBUG = getenv("LD_DEBUG"); if (LD_DEBUG != nullptr) { g_ld_debug_verbosity = atoi(LD_DEBUG); }因此可以在进程内部设置环境变量s...

2019-10-24 15:00:01 929

原创 vfork导致父进程环境变量被修改

vfork导致父进程环境变量被修改vfork版本#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <sys/types.h>#include <unistd.h>static int childProcess(void *arg) { ...

2019-10-24 14:50:53 392

原创 SmaliEx反编译Rom

Download latest version: https://github.com/testwhat/SmaliEx/releases/tag/snapshot Build command: gradlew -b smaliex/build.gradle dist Usage:Deoptimize boot classes (The output will be in “o...

2018-07-24 13:50:03 646 1

原创 Android studio调试smali

使用工具android killer或者apktools:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在idea的基础上修改的 smalidea-0.05.zip: as插件,需要安装到android studio中 使用步骤as中导入smalidea插件反编译apk为sm...

2018-06-15 10:34:24 888

原创 刷入第三方Recovery系统TWRP

我们需要预先准备两个文件,分别是SuperSU与TWRP:supersu权限管理工具TWRP 辅助刷机的Recovery系统Supersu下载页Twrp下载页 在Devices根据自己型号,解锁对应的版本,点进去下最新的。准备好上面两个文件后,我们需要把它们分别放置到合适的位置: - SuperSU下载好后将它放到手机的根目录下即可,只要能在后面的刷机中通过目录方便定位到就行。...

2018-06-15 10:33:35 29673

原创 apktool解包和打包apk

下载apktool工具解包 apktool d xxx.apk -f 或者 java -jar apktools.jar decode xxx.apk植入代码 修改smali代码重新打包 apktool b xxx -o xxx-new.apk生成keystore keytool -genkey -alias xiabo -keyalg RSA -validity ...

2018-06-15 10:32:27 5558

原创 Android功耗分析

系统功耗跟踪功耗分析doze模式一直处于关闭状态doze模式开启状态功耗优化参考系统功耗跟踪使用方法,搜集日志adb shell dumpsys batterystats --reset// 运行...adb bugreport bugreport.zip导入Battery Historian分析 采集时间从前一天晚上十点到当天...

2018-05-10 13:44:06 5410 1

原创 ida调试方法与快捷键

ida调试:1:先将android_server push到手机 ,如果手机没有root,需要root才能在android studio中看到进程,可以用工具./setprops ro.debuggable 1修改为debug 2:打开调试应用并等待attach: adb shell am start -D -N com.asobimo.aurcusonline.ww/com.asobim...

2018-05-10 11:51:09 5607

原创 Android Camer框架

Camera框架Camera拍照流程拍照采用ImageReader来作为中介保存图片例子参考android-Camera2Basic 首先是创建ImageReaderstatic void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, j...

2018-05-10 09:39:32 534 4

原创 Android Binder理解

在之所以需要进程通讯,内核空间的地址空间是所有进程共享的,但是用户空间使用的是虚拟地址空间(都有4GB空间),不能共享,因此需要类似于binder这样的驱动,让数据在内核中逛一圈Binder框架定义了四个角色:Server,Client,ServiceManager(以后简称SMgr)以及Binder驱动。其中Server,Client,SMgr运行于用户空间,驱动运行于内核空间。这四个角色的...

2018-05-09 20:05:56 250

原创 Android图像实例SampleWindow

# 简单的window显示 这个例子是一个简单的window显示,仅仅是将一个window加入了WMS并显示,由于没有AMS参与管理栈(实际上根本没有用AMS),因此在切换的时候这个简单的window不会消失 - 这个例子中简单明了的展示出了以下几处重要的操作: - window的add:添加WindowState - window的relayout: windiow的大小...

2018-05-09 20:04:48 469

原创 ActivityManagerService流程

Activity启动流程目的:理清activity的生命周期管理与AMS之间的关系一、理清activity的生命周期管理与AMS之间的关系1、Launcher通知AMS启动某个activity:Launcher中:应用程序中开启一个activity通过startActivitySafely()—-&gt;startActivity(),如果是程序内部启动那么直接...

2018-05-09 20:03:53 351

原创 InputManagerService

Input框架每增加一个WindowState.java,WMS都会通过registerInputChannel向InputDispatcher注册一个connection,这个connection用于后续event查找当前的触摸位置属于哪一个windowevent 主要通过两种途径返回到framework1、key发往PhoneWindowManager一路通过In...

2018-05-09 20:03:18 533

原创 lowmemorykiller内核回收机制注册、回调

LMK分为三个进程 - AMS 中设置lmk的6个内存阈值,以及更新每个进程/线程的adj值applyOomAdjLocked - lmkd是个单独的进程,socket监听,AMS发来的请求,更新内核的参数 - lowmemorykiller在内核中注册shrinker,利用内核的内存回收机制,根据lmkd中设置的参数执行lmk,先杀6个阈值中最大的(当内存低于80640个page时(3...

2018-05-09 20:02:31 349

原创 Android Native Framework gdb调试工具

脚本使用方法gdb_native.sh 228 adb1gdb_native.sh 228 其中228代表要调试进程的pid,必须指定;adb1 指定你想使用的adb工具,也可以不指定adb。#!/bin/bash PROJECT_ROOT=$(dirname $_) #set -x BIN_BIT=64 # BIN_BIT=64 when bin is 64...

2018-05-09 20:01:51 388

原创 PackageManagerService流程

PMS安装应用程序流程一、启动时安装1、查看PMS的功能与启动过程,首先PMS是在systemserver中启动的。之后分为两大部分启动1)恢复之前的引用安装信息:在main中new,开始调用readLP()恢复上一次引用程序安装信息(读取/data/system/packages.xml文件)—-&gt; ScanDirLP()扫描指定目录—-&gt;readPackage...

2018-05-09 20:01:10 383

原创 Android Graphics Framework

Android系统图形框架Android系统图形框架由下往上主要的包括HAL(HWComposer和Gralloc两个moudle),SurfaceFlinger(BufferQueue的消费者),WindowManagerService(窗口管理者),View(BufferQueue的生产者)四大模块。 - HAL: 包括HWComposer和Gralloc两个moudle,Android...

2018-05-09 19:58:09 1197

原创 七、Android数据链接更新路由表

数据链接响应sp<RILRequest> RIL::processSolicited(const Parcel& p) { switch (rr->mRequest) { case RIL_REQUEST_SETUP_DATA_CALL: ret = responseSetupDataCall(p); brea

2016-12-20 18:45:43 6622 1

原创 六、Android RILD框架

RILD的框架

2016-12-20 18:33:03 1171

原创 五、 数据业务APN参数的开机默认使能

在DcTracker的创建及准备工作中,initApnContexts()将初始化好当前系统支持的ApnContexts类型,但是这些APN参数默认都是没有被Enable的,只有当APN被Enable之后,该APN才可以被使用,下面我们就来看如何将一个APN参数激活protected void initApnContexts() { // Load device network attrib

2016-12-20 18:23:38 4210

原创 四、 Android 数据业务APN参数的创建

在前两节简单介绍了连接管理的大致框架,数据链接的准备工作,包括APN的初始化与默认APN使能,DcTracker的构造,包括各种事件的注册等工作。但是数据链接的打开不止是只有用户主动去打开,Android可以提供数据业务的对象主要有,移动数据网络、WIFI、蓝牙、网线等,这些连接本身都可以独立使用,但是对于用户来说,每一时刻又最多只能使用一种方式接入网络,那么当这些功能同时打开时,比如即使用户打开了

2016-12-20 18:18:48 1669

原创 三、Android 网络评分机制

在前两节简单介绍了连接管理的大致框架,数据链接的准备工作,包括APN的初始化与默认APN使能,DcTracker的构造,包括各种事件的注册等工作。但是数据链接的打开不止是只有用户主动去打开,Android可以提供数据业务的对象主要有,移动数据网络、WIFI、蓝牙、网线等,这些连接本身都可以独立使用,但是对于用户来说,每一时刻又最多只能使用一种方式接入网络,那么当这些功能同时打开时,比如即使用户打开了

2016-12-20 18:15:03 7044

原创 二、Android 数据链接的动态分析

经过前面这些过程,网络连接所需要的条件就全部准备就绪,接下来就是等待网络接入 把网络接入过程简单分为三个阶段 触发阶段 —-该阶段是由各种不同事件触发的,比如SIM载入完毕、PS域Attach成功、通话结束、APN改变等,该阶段的最终都是要调用setupDataOnConnectableApns()方法; 准备连接阶段 —-该阶段是指,在DcTracker收到建立连接的请求之后,需要进行一

2016-12-20 17:17:23 2295

原创 一、Android DcTracker的创建及准备工作

DcTracker是在每个Phone构造的时候创建的,DcTrackerBase是DcTracker,他们的核心都是Handler。@GSMPhone.java public GSMPhone (Context context, CommandsInterface ci, PhoneNotifier notifier, boolean unitTestMode) { //创建DcTr

2016-12-20 17:01:07 2614

原创 Linux多线程服务器-门禁打卡系统

源码地址 系统采用一个服务器+两种客户端(网页+APP)OpenDoorMultiThreadServerOpenDoorMultiThreadServer 实验室门禁打卡系统 1、mydb是操作数据库Mysql类,表示每个人员身份的唯一标准是提前分配的不同的局域网IP 2、public是一些公用的函数,开门,字符串操作 3、log 是打印日志 4、OpenDoorMultiThrea

2015-09-09 10:52:39 2809

原创 C++ 异步回调

上一文中讲了C语言通过函数指针实现异步回调 本文继续讨论C++中实现回调,由于C++中有类,而C语言中的回调函数不能直接定义为成员函数,所以就很麻烦了,下面将讨论解决办法。 首先知道静态成员函数是全局的,也就是类的,因此推测可以用静态成员函数来实现回调机制。这里补充一下关于类中静态成员的知识#include <iostream>#include <stdio.h>#include <stdl

2015-08-30 13:16:57 17954 6

基于Vivado HLS在zedboard中的Sobel滤波算法实现

基于Vivado HLS在zedboard中的Sobel滤波算法实现 代码

2017-12-05

learn_OpenCV 代码

learn_OpenCV 代码 自己整理

2014-12-28

jetson 安装系统

jetson 安装系统 完整版

2014-09-14

TCP网络调试助手

最近在网上下载了一个网络调试助手的小工具进行调试UDP,发现它也可以用来调试TCP,顺便操作了一下,感觉非常方便,在这里向分享一下,仅供参考,其他类似的调试工具都是差不多的。需要的童鞋可以下载使用!

2014-07-19

UBUNTU12.4 安装磊科无线网卡驱动

UBUNTU12.4 安装磊科无线网卡驱动

2014-07-12

zedboard OPENCV编译edge_dtection.o

zedboard OPENCV编译edge_dtection.o

2014-06-26

VESA and Industry Standards and Guidelines for Computer Display Monitor Timing

VESA and Industry Standards and Guidelines for Computer Display Monitor Timing

2014-06-12

color space 颜色空间

color space 颜色空间权威指南 http://en.wikipedia.org/wiki/YCbCr http://compression.ru/download/articles/color_space/ch03.pdf

2014-06-12

OV7670 VHDL图像采集 VGA显示

OV7670 VHDL图像采集 VGA显示

2014-06-12

ug873-design-files

ug873-design-files 官方文档

2014-04-22

opencv 2.3.1

opencv 2.3.1 源码 linux嵌入式平台移植必备

2014-04-11

zedboard单板计算机

zedboard单板计算机 启动 内核镜像

2014-04-10

Hypertrm超级终端

Hypertrm超级终端 linux 开发必用

2014-04-10

CuteFTP9 software

cute FTP9 linux与WIN7共享软件 很好绝对可用

2014-04-10

SecureCRT软件

SecureCRT软件 不用安装 直接使用

2014-04-10

XIlinx中国通讯第51期

XIlinx中国通讯第51期 杂质 随便下载

2014-03-20

matlab 命令函数大全

matlab 命令函数大全 很不错的资源

2013-04-09

QUEUE库函数

Queue FIFO C 绝对可用的FIFO 代码

2013-03-27

kalman 卡尔曼滤波C代码

kalman 卡尔曼滤波C代码 用于滤除高斯白噪声的滤波 测试真是可用

2013-03-27

C语言增量式PID 代码

C语言 增量式 PID 代码 测试可用的 只需要调节KP KI KD即可

2013-03-27

PID matlab 程序.txt

PID matlab 程序 增量式PID的matlab仿真程序 测试可用的

2013-03-27

CDS5500机器人舵机用户手册

CDS5500机器人舵机用户手册 博创科技有限公司的资料共享

2013-03-27

VC串口显示波形

很好的串口工具 可以实时显示AD采样的数据波形

2013-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除