丁香树下丁香花开
码龄11年
求更新 关注
提问 私信
  • 博客:663,425
    663,425
    总访问量
  • 74
    原创
  • 166
    粉丝
  • 13
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
加入CSDN时间: 2016-03-28

个人简介:丁香树下,丁香花开!

博客简介:

csdn66_2016的博客

查看详细资料
个人成就
  • 获得225次点赞
  • 内容获得77次评论
  • 获得844次收藏
  • 博客总排名984,230名
创作历程
  • 7篇
    2019年
  • 33篇
    2018年
  • 58篇
    2017年
成就勋章
TA的专栏
  • linux
    42篇
  • android recovery
    29篇
  • openwrt
    1篇
  • linux模块移植
    6篇
  • 混淆概念详解
    4篇
  • android
    27篇
  • 程序员那点事
    1篇
  • buildroot
    2篇
  • ext4文件系统
    6篇
  • uboot
    4篇
  • mender
    1篇
  • linux文件系统
    8篇
  • 图像显示
    4篇
  • 加密校验
    4篇
  • python
    2篇
  • pcba测试
    7篇
  • shell脚本
    6篇
  • bluez
    1篇
  • hcitool
    1篇
  • gattool
    1篇
  • bluetooth
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 3

TA参与的活动 0

创作活动更多

【多重好礼】鸿蒙心迹 · 开发录原创征稿活动

鸿蒙开发者的实战经验,值得被记录。从踩坑排查到项目复盘,从工具脚本到学习笔记,每一段真实的开发经历,都是社区最宝贵的技术资产。「鸿蒙心迹 · 开发录」正式启航,不限主题、随时可写,只要是鸿蒙开发相关的真实经验都欢迎投稿。 本活动为 [HarmonyOS 7.0 创新内容共创季](https://builderx.csdn.net/activity-site/harmonyos/activity2026)双轨征文之一,与[「共创季 · 稿事节」](https://harmonyosdev.csdn.net/6a97f0de2b83d06f0ecadec5.html)深度征文互补——「稿事节」写深度技术长文,「开发录」写日常开发实战笔记。 「开发录」每月一期,12月截止,本季共三期,投稿即有机会获得京东卡、CSDN博客流量券、亿万Token、社区定制周边好礼!

126人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Makefile编译时怎么打印出变量值

1、输出打印信息的方法是:$(warning xxxxx)2、输出打印变量值的方法是:$(warning  $(XXX))
转载
博文更新于 2017.09.25 ·
1415 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

通过SHA_init/SHA_update/SHA_final生成sha散列值

在《sha1 -- 生成 sha1 散列值》中给出了可以生成 SHA1() 函数,它应用很简单。实际上,OpenSSL 还提供了另外一套 API 用以产生 sha1 散列值,该套 API 可以生成更大文件的散列值。比如在 32 位系统下,应用程序不能访问超过 4G (2[sup]32[/sup] )的内存空间,从 SHA1() 函数的第 1 个参数指针也知道,它所指向的空间也不能超过 4G
转载
博文更新于 2017.08.16 ·
1825 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Makefile中通过sed命令生成文件系统的selinux的配置文件vendor_filesystem_config.txt

今天在编译android-O(8.0)的时候,我自己新增加了一个ext4格式的分区,在编译这个分区的时候,需要对应的生成文件系统的配置文件xxxx_filesystem_config.txt,发现了生成这个配置文件的的Makefile里面,调用了sed命令来处理一些字符串:build/core/Makefiledefine fs_config(cd $(1); find . -type
原创
博文更新于 2017.07.15 ·
1745 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

8位, 16位,24位,32位图片显示原理及对比

  我们都知道一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等。这个是从文件格式的角度看,我们抛开文件格式,看图片本身,我们可以分为8位, 16位, 24位, 32位等。  单击右键,属性->详细信息即可查看图片位深度:8位:  2^8 = 2^2(B) 2^3(G) 2^3(R) = 256  (256色)    可以总共显示256种颜色16位:...
原创
博文更新于 2018.09.26 ·
72837 阅读 ·
60 点赞 ·
10 评论 ·
184 收藏

(六)android recovery 升级UI显示之资源文件

Recovery只有在升级的时候才会呈现给用户,所以界面一般都很简单,没有android上层那么绚丽,所以recovery下面对图片的支持很有限,仅支持png图片显示,所以我们可以看到,recovery下面所有的背景以及提示信息,都是以png格式图片的资源文件存在。一般的厂商都会觉得,原生的机器人很low,都会重新整理一套升级显示的UI,但并非所有的png图片recovery都是支持的,下面我们来
原创
博文更新于 2017.05.16 ·
4154 阅读 ·
0 点赞 ·
1 评论 ·
5 收藏

Android Boot Image Header结构

Android 9.0之前的boot header:struct boot_img_hdr{ uint8_t magic[BOOT_MAGIC_SIZE]; uint32_t kernel_size; /* size in bytes */ uint32_t kernel_addr; /* physical load addr */ uint32_t ...
原创
博文更新于 2019.03.15 ·
1503 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

android recovery设置selinux为permissive

我们在调试开发阶段,经常需要把selinux关闭,则我们修通过设置uboot env来设置为允许状态:setenvEnableSelinux permissive;save 我们如果需要一直设置为permissive模式,不需要通过uboot env去控制,可以这样修改(android 9.0上面验证):system/core/init下面打patch:diff --...
原创
博文更新于 2019.03.13 ·
3455 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

Can't find ext4 filesystem(EXT4-fs:Bad magic number in super-block)

针对目前市面上主流的android系统的嵌入式设备,都是使用的emmc的flash存储,相应的使用的是ext4的文件系统,当ext4的system分区无法挂载的时候,我们改如何分析呢?何种操作导致的ext4分区无法挂载呢? 我们出问题的设备的启动log如下:[ 1.868201@2] fs_mgr: Warning: unknown flag format[ ...
原创
博文更新于 2019.03.11 ·
7337 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏

ext文件系统机制原理剖析

看过的比较完整且通俗的ext文件系统的解析,新手学习非常合适,尊重原创作者转载于:https://www.cnblogs.com/f-ck-need-u/p/7016077.html将磁盘进行分区,分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化,然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统。文件系统的类型有很多种,如CentOS 5和Cen...
转载
博文更新于 2019.03.07 ·
607 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

FAT32文件系统格式详解(图文针对具体文件存储,分析fat32 SD卡)

一. 用winhex工具分析SD卡(FAT32)WinHex.exe -> 工具 ->打开磁盘 ->选中SD卡设备 图(1)打开后主界面如下: ...
原创
博文更新于 2019.03.01 ·
16641 阅读 ·
20 点赞 ·
3 评论 ·
81 收藏

recovery 下界面UI旋转90 180 270修改

原文修改出自简书:https://www.jianshu.com/p/768fdd954061应该是MTK修改的google源码,支持recovery下屏幕旋转90/180/270, 作者把MTK的修改上传了,验证没有问,可以直接使用,多谢分享...
原创
博文更新于 2019.01.30 ·
1562 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

python错误(Could not find platform independent libraries <prefix>)

我们在自己裁剪的文件系统中,执行python命令的时候,提示如下错误:# pythonCould not find platform independent libraries &lt;prefix&gt;Could not find platform dependent libraries &lt;exec_prefix&gt;Consider setting $PYTHONHOME...
原创
博文更新于 2019.01.02 ·
69000 阅读 ·
4 点赞 ·
7 评论 ·
9 收藏

linux下可执行bin程序提示not found/no such file or directory/not executable

    我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下几种常见的几种场景:1.可执行bin程序确实不存在这个错误就比较低级了,你的可执行bin没有打包或者拷贝进来,执行的时候,自然找不到了2.可执行bin程序的路径不对我们...
原创
博文更新于 2018.12.28 ·
10044 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

分辨率 PPI DPI概念定义详解

    我们在开发中,涉及到UI显示时,经常会遇到的一些概念,比如分辨率,ppi,dpi等,这些概念,在百度百科中,发现都有对它们的定义,一些博客中,也有对这几个概念的对比,但是看了下,发现解释的也不是很清楚,理解起来还是不太容易,下面讲解下我自己的理解,用尽可能简单通俗的方式,让大家更容易理解。 (1)分辨率    分辨率是用来描述图片的像素信息的,比如我们说一张图片的分辨率是128...
原创
博文更新于 2018.12.24 ·
18384 阅读 ·
19 点赞 ·
16 评论 ·
61 收藏

一个exfat U盘引起的systen crash

    最近遇到一个奇葩的问题,客户反馈,在Android 系统的TV上,插入exfat格式的U盘,然后就system crash了,经过一系列分析后,我们找到了原因,把分析过程分享下,希望对有类似的问题的朋友参考:    由于kernel打印的信息比较多,我们截取比较重要的信息分析:这里out_of_memory了, 内存耗尽了,我们继续看看下面的打印,看看是哪个进程导致的内存消耗...
原创
博文更新于 2018.12.06 ·
1449 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

把png图片资源转换为framebuffer可显示数据

    我们都知道,我们是通过framebuffer来显示图片的,但是我们有不能直接把png图片显示到framebuffer,因为framebuffer是不能直接识别png图片的。    我们如何把一个1.png图片转换为framebuffer需要的格式呢?1. 了解framebuffer的大小# cat /sys/class/graphics/fb0/window_axis ...
原创
博文更新于 2018.11.30 ·
2352 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

一种通过printf打印的调试程序的方法

    我们在写代码的时候,有时候需要调试程序的时候,对于初学者,可以通过简单的增加printf函数打印,这样能够来跟踪程序的踪迹,举个很简单的代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int main(){ int a = 4; int b = 2; int c = 5; int d = 800; ...
原创
博文更新于 2018.10.22 ·
1577 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

查看服务器编译android/linux后台线程个数

  由于日常开发中,我们都是公用的服务器编译,这样有时服务器会变的异常缓慢,我们就需要查看下,是谁使用了大量的多线程编译: 对于编译android系统,使用的是make otapackage -j*编译:我们可以使用如下命令查看 ps -ax | grep "j" | grep "otapackage"即可查看到其他人使用的线程个数。...
原创
博文更新于 2018.09.28 ·
921 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

recovery uncrypt功能解析(bootable/recovery/uncrypt/uncrypt.cpp)

我们通常对一个文件可以直接读写操作,或者普通的分区(没有文件系统)也是一样,直接对/dev/block/boot直接读写,就可以获取里面的数据内容了。当我们在ota升级的时候,把升级包下载到cache/data分区,然后进入recovery系统后,把cache/data分区mount之后,即可从对应的分区获取zip升级包升级了, 前提是我们需要挂载对应的分区cache或者data,这样才能给读...
原创
博文更新于 2018.08.23 ·
5421 阅读 ·
2 点赞 ·
0 评论 ·
15 收藏

recovery 根据@/cache/recovery/block.map描述从data分区升级

    随着android版本的更新,系统固件的大小也越来越大,升级包也越来越大,cache分区已经不够存储update.zip了,所以应用把update.zip下载到data分区,默认情况下data分区是可以存储升级包的。    我们有分区加密的功能,当打开加密分区后,data分区是加密的,当升级包存在data分区的时候,recovery下获取不到对应的秘钥,也没有对应的程序去解密,所以re...
原创
博文更新于 2018.08.23 ·
4678 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏
加载更多