<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[csdn66_2016的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/csdn66_2016</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; csdn66_2016]]></copyright><item><title><![CDATA[Android Boot Image Header结构]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/88578073</link><guid>https://blog.csdn.net/csdn66_2016/article/details/88578073</guid><author>csdn66_2016</author><pubDate>Fri, 15 Mar 2019 16:57:10 +0800</pubDate><description><![CDATA[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 ...]]></description><category></category></item><item><title><![CDATA[android recovery设置selinux为permissive]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/88528258</link><guid>https://blog.csdn.net/csdn66_2016/article/details/88528258</guid><author>csdn66_2016</author><pubDate>Wed, 13 Mar 2019 11:06:36 +0800</pubDate><description><![CDATA[我们在调试开发阶段，经常需要把selinux关闭，则我们修通过设置uboot env来设置为允许状态：setenvEnableSelinux permissive；save

  我们如果需要一直设置为permissive模式，不需要通过uboot env去控制，可以这样修改（android 9.0上面验证）：

system/core/init下面打patch：


diff --...]]></description><category></category></item><item><title><![CDATA[Can't find ext4 filesystem（EXT4-fs:Bad magic number in super-block)]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/88396911</link><guid>https://blog.csdn.net/csdn66_2016/article/details/88396911</guid><author>csdn66_2016</author><pubDate>Mon, 11 Mar 2019 17:43:13 +0800</pubDate><description><![CDATA[针对目前市面上主流的android系统的嵌入式设备，都是使用的emmc的flash存储，相应的使用的是ext4的文件系统，当ext4的system分区无法挂载的时候，我们改如何分析呢？何种操作导致的ext4分区无法挂载呢？

  我们出问题的设备的启动log如下：


[    1.868201@2] fs_mgr: Warning: unknown flag format
[    ...]]></description><category></category></item><item><title><![CDATA[ext文件系统机制原理剖析]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/88313025</link><guid>https://blog.csdn.net/csdn66_2016/article/details/88313025</guid><author>csdn66_2016</author><pubDate>Thu, 07 Mar 2019 16:53:56 +0800</pubDate><description><![CDATA[看过的比较完整且通俗的ext文件系统的解析，新手学习非常合适，尊重原创作者

转载于：https://www.cnblogs.com/f-ck-need-u/p/7016077.html

将磁盘进行分区，分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化，然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统。

文件系统的类型有很多种，如CentOS 5和Cen...]]></description><category></category></item><item><title><![CDATA[FAT32文件系统格式详解（图文针对具体文件存储，分析fat32 SD卡）]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/88066637</link><guid>https://blog.csdn.net/csdn66_2016/article/details/88066637</guid><author>csdn66_2016</author><pubDate>Fri, 01 Mar 2019 20:11:42 +0800</pubDate><description><![CDATA[一. 用winhex工具分析SD卡（FAT32)

WinHex.exe -&amp;gt; 工具 -&amp;gt;打开磁盘 -&amp;gt;选中SD卡设备



                         图（1）

打开后主界面如下：



                          ...]]></description><category></category></item><item><title><![CDATA[recovery 下界面UI旋转90 180 270修改]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/86706241</link><guid>https://blog.csdn.net/csdn66_2016/article/details/86706241</guid><author>csdn66_2016</author><pubDate>Wed, 30 Jan 2019 17:29:22 +0800</pubDate><description><![CDATA[原文修改出自简书：https://www.jianshu.com/p/768fdd954061

应该是MTK修改的google源码，支持recovery下屏幕旋转90/180/270, 作者把MTK的修改上传了，验证没有问，可以直接使用，多谢分享...]]></description><category></category></item><item><title><![CDATA[python错误（Could not find platform independent libraries <prefix>）]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/85622268</link><guid>https://blog.csdn.net/csdn66_2016/article/details/85622268</guid><author>csdn66_2016</author><pubDate>Wed, 02 Jan 2019 16:31:43 +0800</pubDate><description><![CDATA[我们在自己裁剪的文件系统中，执行python命令的时候，提示如下错误：


# python
Could not find platform independent libraries &amp;lt;prefix&amp;gt;
Could not find platform dependent libraries &amp;lt;exec_prefix&amp;gt;
Consider setting $PYTHONHOME...]]></description><category></category></item><item><title><![CDATA[linux下可执行bin程序提示not found/no such file or directory/not executable]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/85323570</link><guid>https://blog.csdn.net/csdn66_2016/article/details/85323570</guid><author>csdn66_2016</author><pubDate>Fri, 28 Dec 2018 16:00:43 +0800</pubDate><description><![CDATA[    我们经常在执行二进制bin程序时，会遇到提示not found/no such file or directory/not executable等错误信息，在什么情况下会出现这种问题呢，我们一起罗列下几种常见的几种场景：

1.可执行bin程序确实不存在

这个错误就比较低级了，你的可执行bin没有打包或者拷贝进来，执行的时候，自然找不到了



2.可执行bin程序的路径不对



我们...]]></description><category></category></item><item><title><![CDATA[一个exfat U盘引起的systen crash]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/84863682</link><guid>https://blog.csdn.net/csdn66_2016/article/details/84863682</guid><author>csdn66_2016</author><pubDate>Thu, 06 Dec 2018 19:59:18 +0800</pubDate><description><![CDATA[    最近遇到一个奇葩的问题，客户反馈，在Android 系统的TV上，插入exfat格式的U盘，然后就system crash了，经过一系列分析后，我们找到了原因，把分析过程分享下，希望对有类似的问题的朋友参考：

    由于kernel打印的信息比较多，我们截取比较重要的信息分析：



这里out_of_memory了， 内存耗尽了，我们继续看看下面的打印，看看是哪个进程导致的内存消耗
...]]></description><category></category></item><item><title><![CDATA[把png图片资源转换为framebuffer可显示数据]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/84667215</link><guid>https://blog.csdn.net/csdn66_2016/article/details/84667215</guid><author>csdn66_2016</author><pubDate>Fri, 30 Nov 2018 20:17:23 +0800</pubDate><description><![CDATA[    我们都知道，我们是通过framebuffer来显示图片的，但是我们有不能直接把png图片显示到framebuffer，因为framebuffer是不能直接识别png图片的。

    我们如何把一个1.png图片转换为framebuffer需要的格式呢？

1. 了解framebuffer的大小


# cat /sys/class/graphics/fb0/window_axis    ...]]></description><category></category></item><item><title><![CDATA[一种通过printf打印的调试程序的方法]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/83278137</link><guid>https://blog.csdn.net/csdn66_2016/article/details/83278137</guid><author>csdn66_2016</author><pubDate>Mon, 22 Oct 2018 20:19:51 +0800</pubDate><description><![CDATA[    我们在写代码的时候，有时候需要调试程序的时候，对于初学者，可以通过简单的增加printf函数打印，这样能够来跟踪程序的踪迹，举个很简单的代码：


#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;

int main(){

  int a = 4;
  int b = 2;
  int c = 5;
  int d = 800;
  
  ...]]></description><category></category></item><item><title><![CDATA[查看服务器编译android/linux后台线程个数]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/82878361</link><guid>https://blog.csdn.net/csdn66_2016/article/details/82878361</guid><author>csdn66_2016</author><pubDate>Fri, 28 Sep 2018 11:22:57 +0800</pubDate><description><![CDATA[  由于日常开发中，我们都是公用的服务器编译，这样有时服务器会变的异常缓慢，我们就需要查看下，是谁使用了大量的多线程编译：

 

对于编译android系统，使用的是make otapackage -j*编译：

我们可以使用如下命令查看 ps -ax | grep &quot;j&quot; | grep &quot;otapackage&quot;



即可查看到其他人使用的线程个数。...]]></description><category></category></item><item><title><![CDATA[8位, 16位，24位，32位图片显示原理及对比]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/82850695</link><guid>https://blog.csdn.net/csdn66_2016/article/details/82850695</guid><author>csdn66_2016</author><pubDate>Wed, 26 Sep 2018 14:06:37 +0800</pubDate><description><![CDATA[  我们都知道一张图片可以保存为很多种不同的格式，比如bmp/png/jpeg/gif等等。这个是从文件格式的角度看，我们抛开文件格式，看图片本身，我们可以分为8位， 16位， 24位， 32位等。

  单击右键，属性-&amp;gt;详细信息即可查看图片位深度：



8位：  2^8 = 2^2(B) 2^3(G) 2^3(R) = 256  (256色)    可以总共显示256种颜色

16位：...]]></description><category></category></item><item><title><![CDATA[recovery 根据@/cache/recovery/block.map描述从data分区升级]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/81982636</link><guid>https://blog.csdn.net/csdn66_2016/article/details/81982636</guid><author>csdn66_2016</author><pubDate>Thu, 23 Aug 2018 20:16:30 +0800</pubDate><description><![CDATA[    随着android版本的更新，系统固件的大小也越来越大，升级包也越来越大，cache分区已经不够存储update.zip了，所以应用把update.zip下载到data分区，默认情况下data分区是可以存储升级包的。

    我们有分区加密的功能，当打开加密分区后，data分区是加密的，当升级包存在data分区的时候，recovery下获取不到对应的秘钥，也没有对应的程序去解密，所以re...]]></description><category></category></item><item><title><![CDATA[recovery uncrypt功能解析(bootable/recovery/uncrypt/uncrypt.cpp)]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/81984399</link><guid>https://blog.csdn.net/csdn66_2016/article/details/81984399</guid><author>csdn66_2016</author><pubDate>Thu, 23 Aug 2018 20:13:12 +0800</pubDate><description><![CDATA[我们通常对一个文件可以直接读写操作，或者普通的分区(没有文件系统)也是一样，直接对/dev/block/boot直接读写，就可以获取里面的数据内容了。

当我们在ota升级的时候，把升级包下载到cache/data分区，然后进入recovery系统后，把cache/data分区mount之后，即可从对应的分区获取zip升级包升级了， 前提是我们需要挂载对应的分区cache或者data，这样才能给读...]]></description><category></category></item><item><title><![CDATA[recovery 升级前兼容性检查(Vendor Interface Object)]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/81704720</link><guid>https://blog.csdn.net/csdn66_2016/article/details/81704720</guid><author>csdn66_2016</author><pubDate>Wed, 15 Aug 2018 15:49:21 +0800</pubDate><description><![CDATA[  从android P(9.0)版本开始，我们发现编译出来的OTA升级了里面多了一个文件，compatibility.zip，这个里面存储这system与vendor分区的一些特性，用来做升级前的兼容性检查。其实从android O开始已经增加了这个功能，但是没有默认打开。直到android P上，已经默认打开了。



解压compatibility.zip后，内容如下：



我们先从goo...]]></description><category></category></item><item><title><![CDATA[sha1 sha256 md5 crc32几种摘要签名算法的效率，及实现对比及分析]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/81319173</link><guid>https://blog.csdn.net/csdn66_2016/article/details/81319173</guid><author>csdn66_2016</author><pubDate>Tue, 31 Jul 2018 19:59:00 +0800</pubDate><description><![CDATA[    sha1/sha256/md5/crc32这几种算法都是目前比较常用的摘要算法，在我们实际开发中，经常会需要使用，我们该如何选择呢，哪个算法的速度更快呢？

    我们选择了一个差不多1G大小的system.img来分别计算下这四种不同的摘要信息，我们写了一个脚本来计算，更方便我们查看对比结果：


date -u +%r
sha256sum system.img
date -u +%r...]]></description><category></category></item><item><title><![CDATA[recovery 强制执行恢复出厂设置（Rescue Party）]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/80709217</link><guid>https://blog.csdn.net/csdn66_2016/article/details/80709217</guid><author>csdn66_2016</author><pubDate>Fri, 15 Jun 2018 19:55:01 +0800</pubDate><description><![CDATA[有时候我们在系统正常运行的时候，突然跑到recovery里面了，并且停在了如下界面：Can't load Android system. Your data may be corrupt.If you continue to get this message, you may need toperform a factory data reset and erase all user datast...]]></description><category></category></item><item><title><![CDATA[Bluez调试工具hcitool与gattool的使用实例]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/80512521</link><guid>https://blog.csdn.net/csdn66_2016/article/details/80512521</guid><author>csdn66_2016</author><pubDate>Wed, 30 May 2018 16:55:45 +0800</pubDate><description><![CDATA[转载：https://blog.csdn.net/talkxin/article/details/50610984作者：PaulYoung_BlogBluez协议栈在安装完以后，会提供两个命令行调试工具，hcitool与gattool，我们可以根据提供的工具来轻松的调试我们的蓝牙设备。 当然  需要注意的是，在调试BLE设备时，需要获得root权限。蓝牙设备的开启与关闭首先，查看在使用hci工具时...]]></description><category></category></item><item><title><![CDATA[wpa_supplicant-2.6交叉编译及错误解决]]></title><link>https://blog.csdn.net/csdn66_2016/article/details/80368775</link><guid>https://blog.csdn.net/csdn66_2016/article/details/80368775</guid><author>csdn66_2016</author><pubDate>Fri, 18 May 2018 20:19:26 +0800</pubDate><description><![CDATA[   最近项目上需要使用wpa_supplicant与wpa_cli相关的工具测试wifi，网上百度了下，好像要下载wpa_supplicant的源码编译，虽然网上已经有人下载交叉编译过，但是每个人的编译环境不一样，那么也会遇到各种各样的问题，那么解决方法也不相同，在交叉编译过程中，也遇到了问题，记录下编译过程及解决方法。1.openssl-1.0.0交叉编译下载：https://www.open...]]></description><category></category></item></channel></rss>