android
文章平均质量分 71
夜梦雪花飘
android驱动工程师
展开
-
Android 系统开放Root权限给APK
Android 5.0 Lollipop 如何像4.2.2一样通过su命令获取root权限4.2.2(Jelly Bean)上root的方法比较简单,调用su命令就可以获取到root权限并执行一些命令。但是在Android 4.3+到5.0,Google为这种root方法设置了层层障碍:su命令源码中添加了uid检验,只允许shell/root用户进行调用Zygote源码中添加了添加DropCapabilitiesBoundingSet屏蔽APP了setuid的功能adb源码中添加了添加shoul转载 2022-01-05 14:57:20 · 2836 阅读 · 0 评论 -
Android Bluetooth蓝牙scan过程
Android Bluetooth框架 一、Settings界面下scan 进入到android设置界面并打开蓝牙,扫描会自动开始。 下面我们从android蓝牙设置界面开始分析: 蓝牙开关按钮 BluetoothSettings.java (packag...转载 2021-11-29 17:46:25 · 2800 阅读 · 0 评论 -
Android系统启动之配置文件解析
以下代码基于Android 7.0分析作者:jtsky链接:https://www.jianshu.com/p/c1c6271e7761来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。简介我们知道在Android系统启动的时候会创建Init进程,在Init进程的main()入口函数中会解析系统配置文件进行服务进程的创建和启动。解析Init.rc配置文件[->system/core/init/init.cpp]int main(int argc, char转载 2021-10-11 15:49:34 · 1057 阅读 · 0 评论 -
MTK平台 Android11 支持exFat格式T卡
最近项目中想在MTK 的Android11版本中增加支持exfat格式的t卡,参考了CSDN上的几个博客的方法,成功实现了该功能。因为几个博客的kernel和external 的代码的版本都各有不同,我是在github上面重新搜索了一下,找的比较新的版本来做的。kernel 层的代码用的是1.2.24-20190524:exfat kernelexternal 的代码用的是1.3.0 (2018-09-15):1,kernel层增加exfat格式支持,...原创 2021-02-25 17:08:58 · 2211 阅读 · 0 评论 -
Android存储系统之源码篇
基于Android 6.0源码, 来分析存储相关架构,涉及源码:/framework/base/services/java/com/android/server/SystemServer.java/framework/base/services/core/java/com/android/server/MountService.java/framework/base/services/co...转载 2020-05-07 14:37:37 · 845 阅读 · 0 评论 -
MT6735 呼吸灯不亮的问题
这两天遇到个奇怪的问题,手机电量低于15%的时候,只会弹出低电量的提示框,低电量指示灯并没有闪烁。查看log01-01 00:02:36.294016 1253 1286 D lights : set_led_state colorRGB=FFFF0000, onMS=125, offMS=287501-01 00:02:36.294087 1253 1286 D ligh原创 2018-01-05 15:41:38 · 662 阅读 · 0 评论 -
Android 呼吸灯流程分析(二)
一、Android呼吸灯Driver实现 1、注册驱动 代码位置:mediatek/kernel/drivers/leds/leds_drv.c[plain] view plain copy print?602static struct platform_driver mt65xx_leds_driver = { 603 .driver = { 604转载 2018-01-05 14:49:56 · 1068 阅读 · 0 评论 -
Android 呼吸灯流程分析(一)
一、Android 呼吸灯的使用 在讲呼吸灯实现流程之前,我们先看一下如何使用它。 Android提供了呼吸灯的接口,我们可以通过该接口,控制呼吸灯的闪烁频率和占空比。具体代码如下:[java] view plain copy print?package com.example.test; import android.os.Bundle; import andr转载 2018-01-05 14:48:22 · 3867 阅读 · 0 评论 -
Android通过广播实现灭屏和亮屏
方法:PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);/* PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。 SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯 SCR原创 2017-12-18 15:27:18 · 6365 阅读 · 2 评论 -
win10系统 JDK的安装与环境变量配置
1、到官网下载最新版本的JDK 地址自行百度,根据系统下载对应的安装文件。 2、安装JDK,没什么好说的,安装的时候选择安装路径并记住,后面设置系统变量的JAVA_HOME时候会用这个路径。3、环境配置 win10中为“此电脑”,选择“属性”,打开“系统”对话框,点击“高级系统设置”标签。弹出“系统属性”对话框,选择系统属性下的“高级”标签。选择“环境变量(N)“按钮,打原创 2018-01-06 16:13:36 · 1495 阅读 · 0 评论 -
android NFC读取UID
1.在清单文件中添加所需要的权限 <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc" 2...转载 2018-04-09 15:57:45 · 2153 阅读 · 0 评论 -
error: insufficient permissions for device(解决adb shell问题)
1、配置环境变量进入终端,输入sudo gedit ~/.bashrc在文件的最后追加:export PATH=PATH:/XXXXXX/android−sdk−linux/tools/exportPATH=PATH:/XXXXXX/android−sdk−linux/tools/exportPATH=PATH:/XXXXXX/android-sdk-linux/tools/ ...原创 2018-06-04 15:06:15 · 3832 阅读 · 0 评论 -
Android NDK——使用Android Studio引用so库,jar包、module以及导入Eclipse项目并使用JNI的正确姿势
<h1 id="引言"><a name="t0"></a>引言</h1>由于项目中需要用到JNI,以前虽然在Eclipse上使用过JNI和SO 文件,移植到Android Studio上的时候是花费好些力气的,也处理过不少常见的错误,而且网上很多文章都是只写了大致的步骤,忽略了很多细节,为了让新手们少走弯路,同时也是加强...转载 2018-06-21 17:31:43 · 1760 阅读 · 0 评论 -
SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)
原 [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)热门干货 ...转载 2018-08-30 18:44:02 · 1711 阅读 · 0 评论 -
给第三方apk进行系统签名的几种方式
转自:https://blog.csdn.net/u012041204/article/details/73823606一、Android中的签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进...转载 2019-09-27 10:36:46 · 398 阅读 · 0 评论 -
查看Android apk签名信息
必须先安装jdk并配置好环境变量,然后运行->CMD->输入以下命令keytool -list -printcert -jarfile D:\GoogleNewTest\sdkgoogle.apk转载 2019-09-27 10:38:04 · 150 阅读 · 0 评论 -
uvc摄像头代码解析之描述符
1.uvc驱动模块入口[cpp] view plain copy print?module_init(uvc_init); //1.模块入口 module_init(uvc_init); //1.模块入口2.初始化函数[cpp] view plain copy print?static int __init uvc_init(void) // 2.初始化函数 { int r转载 2017-11-28 14:39:38 · 3852 阅读 · 0 评论 -
Android USB 设备如何区分是打印机还是U盘
项目中需要区分USB的连接设备是打印机还是电子秤,然后上网搜索到了一篇博客,根据这个博客写的一个小的例子:非常感谢hao2014_的这篇博客http://blog.csdn.net/u013686019/article/details/50409421MainActivity:[java] view plain copy print?package com.example.administrat转载 2017-11-28 14:33:56 · 1554 阅读 · 1 评论 -
android 获取网络类型名称2G 3G 4G wifi
首先工程Manifest文件要引用:1 2 //获取网络服务 1 public static String getNetworkTypeName(Context context) { 2 if (context != null) { 3 ConnectivityManager connectMgr = (ConnectivityManager转载 2017-11-28 15:00:15 · 629 阅读 · 0 评论 -
和菜鸟一起学android4.0.3源码之硬件gps简单移植
关于android定位方式android 定位一般有四种方法,这四种方式分别是GPS定位、WIFI定位、基站定位、AGPS定位。1、 Android GPS需要GPS硬件支持直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块现在大部分的智能机应该都有了。通过GPS方式准确度是最高的但是它的缺点也非常明显。1、 比较耗电2、 绝大部分用户默认不开启GPS模块3、 从GPS模块启转载 2017-11-25 12:52:06 · 2167 阅读 · 0 评论 -
android获取SIM卡信息和手机号码
直接附上代码,具体实现new一个PhoneInfoUtils对象,调用其方法即可。public class PhoneInfoUtils { private static String TAG = “PhoneInfoUtils”; private TelephonyManager telephonyManager; //移动运营商编号 private String转载 2017-12-08 17:29:23 · 4555 阅读 · 1 评论 -
android 4.4 系统永不休眠
全志A33实测成功网上找的东西,不是我原创!!!android4.2以上版本比android4.2以前的版本framework层框架部分有了很大的改变,androd4.2以前版本framework层给上的接口函数与android4.2以上版本的接口函数也有了些变化,以前让机器永不休眠的方法用在android4.2以上版本已经不起作用了。现将android4.2以上版本修改永不休眠的方法记录转载 2017-11-22 15:11:13 · 1078 阅读 · 0 评论 -
Android adb shell启动应用程序的方法
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.usage: am [subcommand] [options] start an Activity: am start [-D] -D: enable debugging send a broadcast Intent: am broadcast start an Ins转载 2017-11-22 15:09:51 · 758 阅读 · 0 评论 -
Android系统Gps分析(一)(转载)
1 GPS架构2 GPS分析2.1 头文件头文件定义在:hardware/libhardware/include/hardware/gps.h,定义了GPS底层相关的结构体和接口GpsLocationGPS位置信息结构体,包含经纬度,高度,速度,方位角等。[cpp] view plain copy print?/ Flags to indicate which values are valid转载 2017-11-22 15:03:42 · 1522 阅读 · 0 评论 -
eclipse中安装ndk开发JNI
转载 一、关于NDK: NDK全称:Native Development Kit。 1、NDK是一系列工具的集合。 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文转载 2017-11-21 15:46:09 · 281 阅读 · 0 评论 -
android kernel 添加时间log
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让原创 2017-12-01 17:21:14 · 1374 阅读 · 1 评论 -
ueventd.rc 处理硬件设备权限和android init 对其解析
Ueventd.rc对硬件设备访问权限处理ueventd.rc———————————————————/dev/null 0666 root root/dev/zero 0666 root root/dev/full 0666 root root/转载 2017-11-25 12:37:58 · 1177 阅读 · 0 评论 -
init.rc启动 shell脚本
[Android] 在開機的時候,執行你想要的 shell script雖然 init.rc 很好用,但還是有其缺陷… 像是我要 echo 某些字串到檔案時,他就做不到了 :(所以可以搭配一個 .sh 的檔案,讓他開機的時候去執行這個 .sh 即可。建議修改方式:[1] 在 AndroidBoard.mk 裡面將你的 .sh 包起去file := $(TARGET_OUT)/etc/my.sh转载 2017-11-25 12:42:29 · 1629 阅读 · 0 评论 -
android makefile批处理文件夹的资源
在android开发中,我们需要将某个文件夹的资源预置到system中或设备中的某个文件夹中,如果资源文件比较少,我们可以使用android的PRODUCT_COPY_FILES来处理。如果资源文件比较多,怎么办? 这时候可以使用foreach 函数来处理。 foreach的介绍原文出处http://blog.csdn.net/cjsycyl/article/details/8064871转载 2017-11-25 12:43:14 · 223 阅读 · 0 评论 -
Android判断屏幕锁屏的方法总结
由于做一个项目,需要判断屏幕是否锁屏,发现网上方法很多,但是比较杂,现在进行总结一下:总共有两类方法:一、代码直接判定二、接收广播 现在先说第一类方法(代码直接判定):1、通过PowerManager的isScreenOn方法,代码如下: ?12PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERV转载 2017-12-22 15:43:47 · 1385 阅读 · 0 评论 -
android平台1.3寸OLED屏调试
引言:Android平台为彩色屏,图片格式为RGB8888,而1.3寸OLED屏为黑白屏,即像素为1,让屏正常工作能采用的方案有:1. 方便apk开发,减少应用层开发的工作量,采取读取framebuf中的数据,将彩色转为单色图片,用8080并口的方式发送数据至GRAM.2. 加字库与图片,用单色屏开发的方式,省却图片数据转换的步骤。当时与客户讨论屏幕显示的效果等细节时,客户需要至少一种字体,转载 2017-11-28 11:07:14 · 1573 阅读 · 0 评论 -
Android中的ueventd
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让转载 2017-11-28 11:18:18 · 3364 阅读 · 0 评论 -
v4l2读取摄像头程序流程解析
v4l2 操作实际上就是 open() 设备, close() 设备,以及中间过程的 ioctl() 操作。对于 ioctl 的调用,要注意对 errno 的判断,如果调用被其他信号中断,即 errno 等于 EINTR 的时候,要重新调用。 Video capture device 的实际功能就是采集视频信号,并将数字化的图像保存在 memory 中,现在几乎上所有的相关设备都能采集 25转载 2017-11-28 11:19:45 · 1668 阅读 · 0 评论 -
Android 5.x 权限问题解决方法
Android 5.x 权限问题解决方法 一、 android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰。 本文结合具体案例,讲解如何根据log来快速解决90%的权限问题。 遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺少什么权限,转载 2017-11-28 13:51:56 · 254 阅读 · 0 评论