Android
CedarDiao
80后技术狂,拖延症晚期,强迫症重度患者!
展开
-
raw.githubusercontent.com 地址解析错误解决办法
背景某个开源项目的build.gradle中,有一个github的raw源:maven { url 'http://raw.github.com/saki4510t/libcommon/master/repository/' }Android Studio编译时,出现DNS解析错误的问题。错误描述Unknown host '请求的名称有效,但是找不到请求的类型的数据。 (raw.githubusercontent.com)'. You may need to adjust the p原创 2021-09-23 11:29:19 · 26191 阅读 · 1 评论 -
Android9 Sepolicy规则基础 - MTK平台
1. SELinux的基础原则默认拒绝原则 - 任何未经明确允许的行为都会被拒绝(即:白名单制)2. SELinux的两种执行模式宽容模式 - 权限拒绝事件会被记录下来,但不会被强制执行。(权限不够时,仅警告)强制模式 - 权限拒绝事件会被记录下来并强制执行。(权限不够时,拒绝执行)3. SELinux在安卓平台上的演变低于安卓4.3 - 默认不支持SELinu...原创 2020-02-29 13:15:11 · 4544 阅读 · 0 评论 -
Ubuntu 15.04 Android编译环境
大部分都与13.04及14.04没有区别:参考: 重装Ubuntu13.04后需要做的事情需要注意的是两个问题:1. JAVA环境会报错sudo apt-get remove jayatana将这个玩意删除后JAVA环境检查报错的问题解决.2. make工具被升级make工具需要自己下载3.81版本,自己编译安装.再这里下载3.81版本的gn原创 2015-05-06 12:16:00 · 2770 阅读 · 0 评论 -
重装Ubuntu13.04后需要做的事情
由于以前的PC太老了,内存升级不了,所以更换了一台机器,将内存升级到了8GB,保险起见,重装了一下Ubuntu13.04(amd64)。这里记录下安装完成后还需要做的事情:1. 搭建Android 编译环境sudo apt-get updatesudo apt-get install -y git gnupg flex bison gperf build-essential原创 2013-07-12 22:26:44 · 2197 阅读 · 0 评论 -
如何在64位安卓系统中使用32位SO库
背景知识:对于64位系统的编译规则,可参考:http://source.android.com/source/64-bit-builds.html关键点:JAVA编译不分32bit和64bit(APK,JAR) - 可执行文件,默认编译64位 - 动态库和静态库,默认同时编译32bit和64bit版本 - 通过LOCAL_MULTILIB可以指定特定模块编译32bit或64bit或都编译 -原创 2016-04-11 14:49:42 · 21083 阅读 · 0 评论 -
重装Ubuntu13.04后需要做的事情
注:本文的配置方法同样适用于Ubuntu14.04版本。1. 搭建Android 编译环境sudo apt-get updatesudo apt-get install -y git gnupg flex bison gperf build-essentialsudo apt-get install -y zip curl libc6-dev libncurses5-dev:i386 x11pr原创 2016-04-13 15:33:07 · 672 阅读 · 0 评论 -
Android为动态枚举设备ttyUSB0提权
在系统中存在这样的设备:通常情况下,这个设备不存在,只有在特定情况下才会出现。比如:ttyUSB0, 只有在插入USB转串口的OTG设备后才会出现。对于这样的设备,默认是没有写权限的。如果有root权限,使用命令:chmod 0666 /dev/ttyUSB0即可赋予其写权限。但是,对于产品来说,你不能要求用户或第三方开发人员每次去输入一个命令,而且,最原创 2016-05-17 15:42:37 · 6009 阅读 · 0 评论 -
Andorid官方资源
1. 编译环境http://source.android.com/source/requirements.html2. 系统架构http://source.android.com/devices/index.html3. 调试手法http://source.android.com/devices/tech/debug/index.html原创 2016-05-06 18:41:24 · 624 阅读 · 0 评论 -
GPT分区中使用的CRC32算法
/* * A8h reflected is 15h, i.e. 10101000 00010101*/int reflect(int data, int len){ int ref = 0; for (int i = 0; i < len; i++) { if (data & 0x1) { ref |= (1 << ((len - 1) - i)); } data原创 2013-07-16 15:58:48 · 3001 阅读 · 2 评论 -
APK签名流程详解
本文最好对照我的APK签名解析示例进行阅读.示例中的关键文件说明:keys - 存放签名公私钥的目录signed_logcat.apk - 已经使用keys目录中的密钥签名后的apksigned_logcat - signed_logcat.apk解压出来的内容sign.cmd - 对apk签名的批处理命令signapk.jar - java版本的apk签名工具原创 2017-11-29 19:02:36 · 7623 阅读 · 0 评论 -
Ubuntu 18.04安装Android 5.1系统编译环境
基础环境基础环境的安装,需要参考《重装Ubuntu13.04后需要做的事情》一文。OpenJDK7Android 5.1需要使用OpenJDK7编译,但Ubuntu18.04默认的环境是OpenJDK8。需要参考一下博客里的方法来安装OpenJDK7:https://blog.csdn.net/cwh250/article/details/81948610需要注意的是几个d...原创 2019-06-17 01:15:20 · 2018 阅读 · 1 评论 -
FAT格式磁盘镜像制作方法
工作中需要制作一个名为udisk.bin的文件。此文件是一个FAT格式的磁盘分区的镜像文件,大小为20MB。对于FAT文件格式,制作一个2GB的FAT镜像就会有2GB大小,但由于只是一个空文件系统(其中并没有存储具体的文件),其中有意义的只有前面一部分,包括引导记录以及FAT表所在的部分,所以实际上前20MB就能表示整个FAT文件系统了。以制作1GB大小的udisk.b原创 2015-03-06 20:41:45 · 3648 阅读 · 0 评论 -
Python实现的基于ADB的Android远程工具
本工具为原创,涉及知识:- Python编程- Tkinter GUI编程- ADB通信机制代码已经开源:https://code.csdn.net/codehat/andev/tree/master/src/arobot.py代码全文:#!/usr/bin/env python# -*- coding: utf-8 -*-# -----------原创 2014-11-03 18:30:11 · 4128 阅读 · 0 评论 -
Linux设备树的用法
本文通过为一个新machine写一个设备树来介绍设备树相关的概念,以及如何来描述一个machine。关于设备树的技术细节描述,需要参考ePAPR文档,ePAPR文档中包含了大量的基础语法之外的细节,如果你需要了解更多本文之外的设备树细节,请参考ePAPR文档。基本数据格式设备树是一个由节点及属性组成的简单树结构。属性是基于key-value对的,节点则可以包含子节点翻译 2014-11-03 17:50:00 · 3392 阅读 · 0 评论 -
Makefile依赖关系中的竖线“|”
近日在阅读一个Makefile的时候发现一个依赖关系中有竖线“|”的写法,网上搜索无果,于是自己查看了一下makefile的info文件,其中解释如下: target : prerequisites[TAB]command1[TAB]command2[TAB]...[TAB]commandN其中的[TAB]就是键盘上的Tab键,不可以用空格替代,这些Makefi原创 2013-01-08 10:48:45 · 4590 阅读 · 0 评论 -
三星QMG文件格式分析
最近有同事想给自己的三星机器换一个开机动画,原以为只是换一个bootanimation.zip的问题,结果发现三星用的是自己的动画格式,后缀名为qmg的文件,在网上找了一下似乎没有现成的工具可以修改。几乎清一色的都是root后更换开机动画方式为bootanimation的方式。于是对这个QMG文件产生了点兴趣,分析了一下其文件格式,虽然没有完全分析出来但也写出来我已经完成的原创 2013-01-08 20:42:33 · 8150 阅读 · 0 评论 -
grep与sed配合使用一例
有时候我们需要知道搜索的内容x位于文本文件的哪一行,然后需要查看这一行附近的内容,典型的例子有:- 查看kernel的dmesg信息时- 阅读函数实现代码时可以简单的通过两个命令行解决,举例如下:$grep -n 'BUG' snow_dmesg.log10:[ 0.000000] BUG: mapping for 0x00b00000 at 0xc0900000原创 2013-01-15 10:32:36 · 5728 阅读 · 0 评论 -
Ubuntu13.04 Android 编译环境搭建
升级是因为升级svn把旧的11.04搞坏了,懒得去折腾,于是干脆升级到13.04了。不得不提的是,新版本的svn使用体验有质的飞跃,update一套Android代码需要花费的时间可能只是以前的1/20。。。环境搭建大部分的内容可以参考:http://source.android.com/source/initializing.html1. 安装JAVA6-原创 2013-06-22 15:39:44 · 2455 阅读 · 0 评论 -
Python调用DLL实现部分ADB功能
近期学了一点Python,然后正好有一个手机同步工具方面的预研工作要完成。要实现PC与手机的通信,首先要找到他们的通信协议,还好的是Android有完善的协议:ADBADB的代码是开源的,而且支持Windows平台,有现成的DLL可以调用:AdbWinApi.dll,AdbWinUsbApi.dll好了,可以用VC搞定,但我想用Python试一下,于是开始了苦逼的查资料+实验的过程。原创 2013-06-08 13:46:00 · 3239 阅读 · 0 评论 -
Ubuntu 普通用户访问fastboot及adb设备
1. 新建如下文件/etc/udev/rules.d/51-android.rules2. 编辑该文件内容如下:SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0600", OWNER="diao"SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0600"原创 2014-08-13 16:12:51 · 1183 阅读 · 0 评论 -
使用gdb取得kernel oops或kernel pannic的错误行号
kernel上我们可能经常会遇到kernel oops或kernel pannic错误,通常我们通过串口LOG应该能得到类似下面的debug信息:----------------------------------------------------------------------------------------------------[ 3.256221] [] (__原创 2014-08-13 17:07:45 · 1897 阅读 · 0 评论 -
通过网络连接ADB
当调试USB接口时,需要使用WIFI来连接ADB打印log。手机端:1. setprop service.adb.tcp.port 55552. 重新启动adbd服务3. 连接3G网络或WIFI,查到自己的IP地址 如:192.168.1.55以上三步可以在PC端用一个命令完成:adb tcpip 5555PC端:原创 2014-09-04 10:53:28 · 1245 阅读 · 0 评论 -
Ubuntu13.04上JDK6的安装方法
最近为同事安装Ubuntu13.04以及Android开发环境,发现一个恶心的事情,在之前的一篇文章(http://blog.csdn.net/diaoxuesong/article/details/9151035)中提到的sun-java1.6的安装方法已经失效了。我不禁感概:这操蛋的Oracle公司,就会给人添堵!好吧,找来找去,终于找到了一个好用的方法,再也不依赖原创 2013-11-23 14:37:27 · 1892 阅读 · 0 评论 -
fastboot命令的自动补全
在Ubuntu13.10以及之后的Ubuntu 14.04上,通过APT安装fastboot以及adb工具之后,发现fastboot的自动补全有问题了, fastboot flash 之后的自动补全有问题了, 特别是mbn以及bin类型的文件根本无法补全.查了一下,发现是fastboot的自动补全脚本限制了补全规则,稍微修改一下就能解决这个问题.文件路径: /etc/bash_原创 2014-11-17 14:28:33 · 1823 阅读 · 0 评论 -
如何在Linux下编译Windows版本的adb和fastboot
<br />理论上,只要下一个windows版本的SDK,里面就自带了fastboot和adb工具。<br />但我最近确实遇到了一个需要在linux下编译出windows版本的adb的问题,废话不多说,步骤如下:<br />1. 执行:apt-get install mingw32<br /> 安装了linux-windows交叉编译环境mingwin<br /> <br />2. 执行:. build/envsetup.sh<br />3. 执行choosecombo,选择各个参数原创 2010-08-06 13:02:00 · 5971 阅读 · 1 评论