自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 android N dmesg源码分析

dmesg源码位置:external/toybox/toys/lsb/dmesg.csystem/core/toolbox/dmesg.c(应该不是这个)在external/toybox/Android.mk的ALL_TOOLS变量中添加了dmesg.c,编译出的/system/bin/dmesg其实是一个指向/system/bin/toybox的符号链接

2017-05-21 21:53:38 2373

原创 git修改已经push了的commit message

1 git commit --amend2 git push -fgit push --help       -f, --force           Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrit

2017-05-30 08:45:38 4076

转载 怎样编写Cmake的配置文件Cmakelist.txt

Cmake 有linux ,windows 多个平台版本,如图是windows下版本程序更具一个简单多目录c项目,学下cmakelist.txt编写规范根目录下cmakelist文件内容:set(CMAKE_INSTALL_PREFIX):设置程序的安装目录,优先级比cmake命令参数设置高。a

2017-05-30 08:41:30 1708 1

转载 CMake 学习(二):生成库

使用CMake生成可执行文件需要使用add_executable命令,简单的像下面这样:add_executable(hello hello.cpp)就会生成一个名为hello的可执行文件。如果需要生成库文件,就需要使用命令add_library库文件包括:windows下 .lib静态库 .dll动态库Linux、OS X下 .a静态库 .so/.dylib共享库

2017-05-30 08:40:25 622

转载 CMake 学习(一):使用链接第三方库

cmake是gnu工具链中构建项目的重要一环,而且在windows Linux OS X中都可以使用,是程序员(特别是linux程序员,因为windows上有无比强大的VS)必备的基本功。命名变量 set(INC_DIR /usr/local/include) set(LINK_DIR /usr/local/lib) set(SOURCE_FILES main.c

2017-05-30 08:38:35 24155

原创 cmake设定可执行文件的输出目录

ADD_EXECUTABLE(1-1 1-1.c)ADD_EXECUTABLE(1-2 1-2.c)ADD_EXECUTABLE(1-3 1-3.c)ADD_EXECUTABLE(1-4 1-4.c)ADD_EXECUTABLE(1-5 1-5.c)ADD_EXECUTABLE(1-6 1-6.c)ADD_EXECUTABLE(1-7 1-7.c)ADD_EXECUTA

2017-05-30 07:24:23 21931

原创 cmake中查找并使用其他程序库

在开发软件的时候我们会用到一些函数库,这些函数库在不同的系统中安装的位置可能不同,编译的时候需要首先找到这些软件包的头文件以及链接库所在的目录以便生成编译选项。1 在项目的根目录中创建目录 cmake/modules/ ,在 cmake/modules/ 下创建文件 Findlibapue.cmake#文件 Findlibapue.cmake 的命名要符合规范: FindlibNA

2017-05-30 06:59:04 1879

原创 cmake中链接系统标准库

如果要在编译时添加例如 -lpthread -lmath这类通用的库只需直接在CMakeLists.txt中添加LINK_LIBRARIES(标准库名称)或TARGET_LINK_LIBRARIES(编译目标名称target 标准库名称)其中标准库名称就是-l后面的库名称,如 math,pthread等编译目标名称就是ADD_EXECUTABLE的第一个参数

2017-05-30 00:22:48 11005 1

转载 GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?

问题背景:    最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目    因为之前规划的原因,原来的四个项目是分两个解决方案来管理的    PC解决方案:1234567891011

2017-05-29 23:38:27 2606 1

原创 导入另一个 Git库到现有的Git库并保留提交记录

提取出的主要步骤如下:1 切换到要合并到的仓库2 git remote add 仓库名 被合并仓库路径3 git fetch --all4 git merge 仓库名/被合并仓库想合并的分支问题描述:我在本地有两个Git库项目(D1=PC项目  包含通用项目 ,D2=移动项目  也 包含通用项目 这两个项目在同一目录下 ), 因为这两个项目使用的通用项目

2017-05-29 23:37:13 4516

转载 使用cmake来生成makefile

CMake 提供了比 autoconfig 更简洁的语法在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:编写 CmakeLists.txt。执行命令“cmake PATH”或者“ccmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。使用 make 命令进行编译。

2017-05-29 22:09:58 8586 1

转载 取得git 打好的tag所对应的代码

先 git clone 整个仓库,然后 git checkout tag_name 就可以取得 tag 对应的代码了。但是这时候 git 可能会提示你当前处于一个“detached HEAD" 状态,因为 tag 相当于是一个快照,是不能更改它的代码的,如果要在 tag 代码的基础上做修改,你需要一个分支:git checkout -b branch_name tag_name

2017-05-26 11:06:41 981 1

原创 安装cygwin及开启ssh

安装cygwin时一定要安装的包有:wget makeyasmlynxopensshlibopensslcygwin中开启ssh的步骤

2017-05-23 16:01:11 12984

原创 cygwin安装类似apt-get的包管理工具

https://github.com/transcode-open/apt-cyg第一次安装cygwin时一定要安装lynx文本浏览器及其所有依赖,然后启动cugwin 执行lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyginstall apt-cyg /bin

2017-05-22 15:36:56 7728

原创 根据avc log自动生成selinux策略

1 提取所有的avc LOG. adb shell "cat /proc/kmsg | grep avc" > avc_log.txt2 使用 audit2allow tool 直接生成policy. sudo apt install policycoreutilsaudit2allow -i avc_log.txt 即可自动输出生成的policy

2017-05-22 14:24:34 5239

原创 xbin目录及toolbox,toybox

华为荣耀3c  4.4 kolya@asus ~/src/aosp_master/system/core $ adb shell ls -l /system/xbin-rwxr-xr-x root     shell       17912 2015-08-27 04:02 BGW-rwxr-xr-x root     shell       59752 2015-08-27 04:0

2017-05-21 23:34:24 3365

原创 Android的toolbox及busybox,toybox

折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。shell实现分为两部分:一、shell解释器和内置命令源码位于system/core/sh目录下,主要完成shell命令的解释查找,对于builtins.c中包含的内置命令

2017-05-21 22:35:06 16130 1

转载 Google官方资料 mksdcard

mksdcardUse the mksdcard tool to create a FAT32 disk image that you can load into emulators running different Android Virtual Devices (AVDs) to simulate the presence of the same SD card in mul

2017-05-18 14:46:04 606

原创 google官方资料 Android 调试桥

Android 调试桥本文内容adb 的工作方式在您的设备上启用 adb 调试通过 WLAN 连接到设备查询设备将命令发送至特定设备安装应用设置端口转发将文件复制到设备/从设备复制文件停止 adb 服务器adb 命令参考发出 shell 命令调用 Activity Manager (am)调用软件包管理器 (pm)进行屏幕截图录制视频读取应用的 ART 配置

2017-05-18 14:17:56 494

原创 init rc中创建文件

android的init rc目前不支持touch:touch /data/misc/logd/kmsg.loglog中会报错: init: /init.rc: 83: invalid keyword 'touch'可以用copy和write命令创建文件write/data/non-empty-file copy/dev/null/data/em

2017-05-17 20:45:21 3603

原创 init启动Native Service时出现Service xxxx needs a SELinux domain defined;

在android 5.0 后, 默认启用了Enforcing SELinux. 有很多同仁经常会从kernel log 中看到这样的警告."[1:init]init: Warning! Service xxxx needs a SELinux domain defined; please fix!"其原因是因为Google 要求init 启动service 时,都要进行SELi

2017-05-17 16:37:40 2194

转载 read android dmesg with code

You can write some Android NDK code which calls the klogctl functions. Something like:#include #define KLOG_READ_ALL 3#define KLOG_LEN (1 17)char buf[KLOG_LEN];if (klogctl(KLOG_READ_ALL

2017-05-16 23:24:17 476

转载 在 Android Native 程序中输出 LOG

尽管是在 Linux Kernel 层开发,但有时还是需要接触一些 Android Native 层代码,查看相关 Log。这篇文章主要是介绍 Android 下与 Log 相关工具的用法,以及在 Native 层模块里,如何去打印 Log。1 Liblog 库Android 给 Native 层的程序提供一个 liblog 库,用来输出日志。如果程序中需要打印 Log,可以包含

2017-05-16 14:06:42 4436

原创 Log、Rlog和Slog的区别

Java层可以通过三个class来输出其中三种类型的log,三种类型分别为MAIN、RADIO和SYSTEM,三个class分别为Log、Rlog和Slog,其package则分别为android.util、android.telephony和android.util。这些用于打印log的classes,其构造函数都为private,因而都不能创建其对象,但它们都提供了静态方法来给用户打印log。

2017-05-16 11:03:36 25579

转载 android-ndk-r10e开启C++11,编译TEMP_FAILURE_RETRY错误

在使用select来操作socket的时候,一般都是会这么写1int err = TEMP_FAILURE_RETRY(select(socket_fd + 1, NULL, &set, NULL, const_caststruct timeval*>(&timeout)));其中的“TEMP_FAILURE_RETRY”宏在“unistd.h”中的定义如下:C++

2017-05-15 23:23:56 1741

转载 TEMP_FAILURE_RETRY宏

https://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/Interrupted-Primitives.htmlA signal can arrive and be handled while an I/O primitive such as open or read is waiting for an I/O dev

2017-05-15 23:21:43 2385

原创 程序员领养群破解笔记

gist.github.com/zealic/38510fd8ecd1be75924a欢迎妹子们进QQ群147210676,群里单身狗很多,一定有属于你的一款,哈哈欢迎妹子,程序员大牛,活跃的进QQ群147210676,群里单身狗很多,一定有属于你的一款,最近几天进了三十几个单身的知乎妹子,妹子相当活跃,差会撩妹子的单身程序员,差会撩妹子的单身程序员,差会撩妹子的单身程序员,重

2017-05-14 17:53:27 1677

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除