android系统
小二人
车机系统及应用软件开发。
展开
-
newStringUTF出现input is not valid Modified UTF-8错误解决办法
在使用Jni的JNIEnv->NewStringUTF的时候抛出了异常"JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xfe"。网上搜索了一下,这个异常是由于Java虚拟机内部的dalvik/vm/CheckJni.c中的checkUtfString函数抛出...转载 2019-11-29 18:10:47 · 6475 阅读 · 1 评论 -
Android系统OTA升级
远程下载OTA升级包update.zip到/data/目录下,调用以下接口进行升级:RecoverySystem.installPackage(this, new File("/data/update.zip"));注意事项:a、接口并没有校验zip包,所以应用方面需要先校验zip包是存在并且ok的;否则会在recovery界面报错;b、需要添加的权限 android:原创 2017-03-16 13:57:55 · 731 阅读 · 0 评论 -
Android SeLinux权限问题和解决方法
1. 确认 seLinux导致权限问题1.1 标志性log 格式:avc: denied { 操作权限 } for pid=7201 comm=“进程名” scontext=u:r:源类型:s0 tcontext=u:r:目标类型:s0 tclass=访问类别 permissive=01.2 举例:Kenel lo转载 2018-02-01 19:29:52 · 442 阅读 · 0 评论 -
Android给新增的二进制应用添加selinux权限
I.SELinux文件类型确定查看文件的安全上下文并做修改1、到相关目录中去查看root@Z00T:/cd system/bin/root@Z00T:/ls -Z | grep demo123PS:demo替换成所需查看的文件名 一般情况下,由于没有设置demo的selinux权限,一般会默认它为文件系统中的文件 demo u:object_r:system_f转载 2018-02-01 19:39:37 · 1606 阅读 · 0 评论 -
解析android编译
1.1 android源码架构通过源码的架构,知道android源码在整个体系的code base充当什么样的角色,有助于理解android。----------------├── Makefile 全局的Makefile├── build 系统编译规则和配置所需要的脚本和工具-----------转载 2018-02-01 20:02:03 · 286 阅读 · 0 评论 -
Android 修改默认输入法
我们知道Android源码中默认的有三种输入法:英文,中文,日文。那么我们现在要把手机默认百度输入法应该怎么去做呢? 首先,你需要内置百度输入法在你的工程里面。怎么内置呢,在package/app/目录下新键一个BaiduInput文件夹,把第三方的百度输入法和有一些库文件放在里面,关键是要在文件夹里面添加Android.mk 再看一下Android.mk里面写了那些东西...转载 2018-05-03 20:37:37 · 627 阅读 · 0 评论 -
Android设备上的蓝牙被搜索到所显示的图标
/system/bt/include/bt_target.h#define BTA_DM_COD {0x5A, 0x02, 0x0C} // 手机端搜索到的蓝牙显示手机图标#define BTA_DM_COD {0x5A, 0x04, 0x06} // 手机端搜索到的蓝牙显示带耳麦的耳机图标#define BTA_DM_COD {0x5A, 0x04, 0x18} ...转载 2018-06-19 19:52:54 · 4476 阅读 · 0 评论 -
Android系统修改默认铃声
Andriod手机的铃声默认保存在system/media/audio/下面,有四个文件夹,分别是alarms,notifications,ringtones,ui。对应闹钟、通知、铃声、UI音效。root的手机可以直接替换修改相应目录下的文件来修改铃声。那这些声音是从哪里来的呢。由于需要修改默认的铃声,就读了一下源码,这里进行记录一下。在源码中,这些文件保存在frameworks\base\...转载 2018-09-19 19:22:15 · 3549 阅读 · 0 评论 -
wm命令使用方法及LCD显示图标大小不正常时解决办法
注:Android 4.3引入的wm工具wm命令及用法:系统说明: usage: wm [subcommand] [options] wm size [reset|WxH] wm density [reset|DENSITY] wm overscan [reset|LEFT,TOP...转载 2018-11-16 15:33:15 · 380 阅读 · 0 评论 -
Android平台程序崩溃的类型及原因列举
Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的。这里把Android平台程序崩溃的各种类型做一个简述和原因列举。1.ANR(可见ANR):发生场景:应用发生ANR。崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”。 “Force Close”将杀掉发生ANR的应用进程。“Wait”将会等待系...转载 2018-12-12 13:58:30 · 553 阅读 · 0 评论 -
File Descriptor泄漏导致Crash: Too many open files
在实际的Android开发过程中,我们遇到了一些奇奇怪怪的Crash,通过sigaction再配合libcorkscrew以及一些第三方的Crash Reporter都捕获不到发生Crash的具体信息,十分头疼。然后我们通过Bugly上报的Java的CallStack观察发现这些Crash发现了一些共同的信息:看来是和OpenGL有关系,于是我们进一步对程序输出的log进行观察,又发现:...转载 2019-01-15 18:58:02 · 902 阅读 · 0 评论 -
Android 中的Java跟C/C++的Binder通信
1、大家都知道Android中进程间的通信是通过binder来实现的,这里主要是讲代码中的简单实现。如果想了解binder的通信细节或实现原理,可以参考https://blog.csdn.net/jmq_0000/article/details/7349844。个人觉得这篇博客讲的还是很不错的。现在就开始demo的介绍,该demo主要是通过java传递文件路径给C++来实现删除该路径,目的是为了了...转载 2019-01-15 19:13:45 · 826 阅读 · 0 评论 -
android 实现framework和底层C/C++通讯
最近接到一个需求,要在framework中添加一些上层接口给客户调用,然后在framework中调用C中的代码实现和硬件一些数据交互。framework和C交互肯定想到的使用jni,但是和硬件交互的时候需要执行一些shell命令,必须要root权限才能执行成功,如果在framework中使用jni,显然无法达到我们想要的效果,后来就换了种方式实现,使用localscoket来实现,在系统添加一个服...转载 2019-01-15 19:14:25 · 1037 阅读 · 0 评论 -
屏蔽android ota升级包时间戳比较
Android的OTA升级包中,里面有一个升级脚本,该脚本会检测recovey镜像的编译时间和OTA包的编译时间,如果recovey比OTA包的时间要新的话,升级便会失败。方法一:直接屏蔽比较函数,到build/tools/releasetools/ota_from_target_files这个脚本,注释掉函数 script.AssertOlderBuild(ts, ts_text)调用,这样原创 2017-04-24 19:14:13 · 1407 阅读 · 0 评论 -
android系统UID定义
源码目录:system\core\include\private\Android_filesystem_config.h/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you原创 2017-03-09 16:36:38 · 7922 阅读 · 0 评论 -
Android.mk 使用环境
++++++++++++++++++++++++++++++一、将无源码的 APK 和它 依赖的库预置进系统,此apk可以升级---------- cut here ------------------LOCAL_PATH := $(call my-dir)#预置aliuyi.apkinclude $(CLEAR_VARS)LOCAL_MODULE := wwwa.a转载 2016-11-28 18:45:01 · 265 阅读 · 0 评论 -
android改变状态栏背景为应用背景
这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:[java] view plaincopypublic class MainActivity extends Activity { @Override protected void onCreate原创 2017-02-23 19:52:48 · 470 阅读 · 0 评论 -
Android中CPU频率查看和修改
首先手机应该是要root的,然后在命令模式下输入如下命令 C:\Users\mtk71247>adb shell root@NOBLEX:/ # cd sys/devices/system/cpu/cpu0/cpufreq cd sys/devices/system/cpu/cpu0/cpufreq root@NO转载 2017-02-22 13:38:39 · 1603 阅读 · 0 评论 -
Android 5.1 Settings源码简要分析
转自:http://blog.csdn.net/u011974987/article/details/51004854目录(?)[+]概述:先声明:本人工作快两年了,仍是菜鸟级别的,惭愧啊!以前遇到好多知识点都没有记录下来,感觉挺可惜的,现在有机会接触Android 源码。我们一个Android组的搞Setting,我觉得是得写得东西,毕竟才接触,现在只转载 2016-12-22 19:44:57 · 1162 阅读 · 0 评论 -
Android电源管理-休眠简要分析
工作需要,需要对这一块深入学习。故在此做一点分析记录,存疑解惑。一、开篇 1.Linux 描述的电源状态 - On(on) S0 - Working- Standby (standby) S1 - CPU转载 2016-11-28 18:56:11 · 604 阅读 · 0 评论 -
android源码
android源码:http://androidxref.comhttps://www.androidos.net.cn/sourcecode原创 2016-11-28 18:39:43 · 287 阅读 · 0 评论 -
Android init.rc文件详细分析
本文主要来自$Android_SOURCE/system/init/readme.txt的翻译.1 简述Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格转载 2016-11-28 18:42:50 · 267 阅读 · 0 评论 -
android 如何预置APK
转载自:http://blog.csdn.NET/sergeycao/article/details/8198205一、如何将带源码的APK预置进系统?1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预制一个名为Test的APK 为例2) 将 Test APK的Source code 拷贝到 Test 文件夹下,转载 2016-11-28 18:47:04 · 275 阅读 · 0 评论 -
在android里常用的默认开关的意义
在 \frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件里定义的开关 如下: def_dim_screen">true 自动关屏 开 def_airplane_mode_on">false 飞行模式 关 def_aut转载 2016-11-28 18:50:04 · 398 阅读 · 0 评论 -
Android 进程和文件的UID/GID
一、文件的操作权限和UID,GID以及进程的UID,GID1. 文件资源的权限力度:UID/GID2. 文件的可操作权限3. 进程的标识: PID, UID, GID, GIDs二、UID,GID的Name 和ID的映射关系以及Chmod/chown命令1. Name 跟 ID的映射2. Chmod和chown命令介绍3. UID/GID的衔转载 2016-11-28 18:51:20 · 1036 阅读 · 0 评论 -
从源码角度分析Android中UID与GID的分配
概述UID一般理解为User Identifier,在Linux中就是用户的ID,表明是哪个用户运行了这个程序,GID则表明了这个用户属于哪个组。它们主要用于权限的管理。而在Android中,部分权限的管理是依赖底层的linux的,所以了解Android的UID/GID十分必要。网上有下面的一段话: 而在Android 中又有所不同,因为Android为单用户系统,这时转载 2016-11-28 18:52:20 · 448 阅读 · 0 评论 -
Android平台网络常用命令
工作中经常用到的一些命令,整理一下,方便以后进行参考1.IP设置 ifconfig eth0 128.224.156.81 up //一般的嵌入式linux中设置IP。ifconfig eth0 128.224.156.81 netmask 255.255.255.0 upnetcfg eth0 up dhcp //通过dhcp 自动获取ip,网关,掩码等。2转载 2016-11-28 18:37:03 · 285 阅读 · 0 评论 -
Android.mk 浅析 模块编译Makefile编写
终于将C++代码porting到了bootloader中,唯一的收获就是熟悉了Makefile,有工厂的公司伤不起啊,每次都得先做一些东西满足工厂端测试的需求,为了能够做到工厂在boot中测试的要求,经过与芯片公司讨论,只有将C++弄到了boot中,真是一个很二的决定boot最终做到了2M比有些kernel还要大。不过老板要这么做就硬着头皮做了现在做成了心中还蛮高兴的,原来被逼之后人的潜能还是蛮大转载 2016-11-28 18:44:18 · 514 阅读 · 0 评论 -
Android 修改系统默认时间格式
android系统第一次开机决定系统的时间格式的代码在frameworks层的SettingsProvider应用中。 1.添加xml配置在frameworks\base\packages\SettingsProvider\res\values\defaults.xml 文件中添加 一行242.在相应代码中读取配置在frameworks\base\pa原创 2017-03-03 14:16:40 · 1923 阅读 · 0 评论