自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android on Linux(在Linux主机上运行Android可执行程序)

前言在前文使用VS Code更好的编写Android C/C++代码(C/C++插件)中主要介绍了如何更好的写代码,本文要探讨的是从“好写”到“写好”的问题–如何做静态代码检查。在查找资料中发现了Cppcheck和Clang-Tidy等工具,Cppcheck的介绍网上资料很多,本文主要探索Clang-Tidy。clang-tidy的使用介绍从官网中获取到简介:clang-tidy是基于clang的C++静态检查工具。其目的是提供一个可扩展的框架,用于诊断和修复典型的编程错误,例如样式冲突,接口

2020-10-11 19:35:12 4037 9

原创 C/C++程序的编译过程

C/C++程序的编译过程前言C/C++代码是如何变成一个可以在硬件上运行的程序的呢,我们从一个简单的"Hello World"程序说起。Hello World编译有个流传挺广的笑话:某程序员对书法十分感兴趣,退休后决定在这方面有所建树。于是花重金购买了上等的文房四宝。一日,饭后突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下:Hello WorldC代码的"Hello World",helloWorld.c 如下:/*include h

2021-07-12 16:12:22 868

原创 Android Native Development

Android Native Development介绍Android Native开发就是指是使用C和C++等语言以原生代码形式,来实现应用的各个部分。而Android是基于Linux内核的操作系统,因此在Android上使用C/C++开发和Linux非常类似。本系列文章主要介绍C/C++程序编译、运行、调试等相关知识,会从Linux和Android两个平台同时对比分析。使用Gitbook提供更加友好的阅读体验:GitHub Pages 地址:https://chenls.github.io/An

2021-07-12 16:10:52 306

原创 在有root权限下破解Android系统签名,安装未系统签名的APK

前言本文提到的相关工具和脚本同步在此:[email protected]:chenls/Crack-Android-system-signature.git,可以在linux中使用的一站式脚本:run.sh。在需要使用一些系统层面的API时(如:HIDL服务),我们APK中必须在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"属性,在添加此属性后,往往需要使用Android源码编译或者使用对应的签名

2021-04-15 18:47:59 7296 5

原创 使用LLDB在VS Code中调试Android C_C++代码(无需Android源码)

需求分析在使用VS Code调试Android C/C++代码(无需Android源码)文章中介绍了如何在VS Code中使用GDB来调试Android C/C++代码,在浏览Android文档Using Debuggers中发现,文档更新了,不建议使用GDB,应尽可能使用LLDB(注意:查看Android文档时,在右上角语言选择ENGLISH,才能浏览最新文档,而不是选择中文-简体)。同样文档中介绍了如何基于Android源码,在VS Code中使用CodeLLDB extension进行调试,下面我.

2021-01-27 14:17:52 4658 2

原创 一种在Linux上运行时免root的方法

前言在这篇在C++代码中使用Android Handler消息机制(Android or Linux)文章中,我们在Linux主机上运行Android可执行程序时是使用了sudo来执行,也就是需要root权限。现在使用的需求是在要服务器上运行,而服务器此时是在git用户,而不是在root用户。可以在运行前从git用户切到root用户,但是这样需要输入root用户的密码。同样使用sudo来执行,也需要密码。或者将此用户的sudo设置为免密码,但这样显得就不是很安全。有没有更好的方案呢?本文将探讨的是,.

2020-10-31 18:35:04 1607

原创 在C++代码中使用Android Handler消息机制(Android or Linux)

前言在上一篇使用纯Java代码实现Android Handler消息机制文章中,我们主要研究是在Java代码中如何使用Android Handler,其实Android Handler机制在Android源码中也使用了C++代码实现了一套,也可以方便的在C++代码中使用。...

2020-10-24 10:08:55 1315

原创 使用纯Java代码实现Android Handler消息机制

前言在上一篇Android on Linux(在Linux主机上运行Android可执行程序)文章中,我们完成了直接在Linux主机上运行Android的可执行程序。其可以用来做一些自动化测试的工作,目前项目中服务端的代码是Android C/C++代码,编译成一个可执行程序,而客户端的代码是一个Java写的Android APK。可以将核心代码移植成一个纯JAVA项目,直接在Linux主机上使用JAVA VM来执行,从而达到自动化测试的目的。移植过程中发现,其主要需要移植的就是Android Hand

2020-10-24 00:39:09 594 1

原创 使用VS Code静态检查Android C/C++代码(clangd插件)

前言在前文使用VS Code更好的编写Android C/C++代码(C/C++插件)中主要介绍了如何更好的写代码,本文要探讨的是从“好写”到“写好”的问题–如何做静态代码检查。在查找资料中发现了Cppcheck和Clang-Tidy等工具,Cppcheck的介绍网上资料很多,本文主要探索Clang-Tidy。clang-tidy的使用介绍从官网中获取到简介:clang-tidy是基于clang的C++静态检查工具。其目的是提供一个可扩展的框架,用于诊断和修复典型的编程错误,例如样式冲突,接口

2020-09-13 18:08:59 5694

原创 使用VS Code更好的编写Android C/C++代码(C/C++插件)

前言使用VS Code编写C/C++代码时,VS Code会推荐安装C/C++插件,此插件会集成C/C++代码导航和调试等功能。前文使用VS Code调试Android C/C++代码(无需Android源码)就使用了C/C++插件做代码调试。但是在使用中发现了一些问题:1、标准库中头文件跳转到了主机的系统头文件,而不是Android NDK中的头文件;2、由于代码中使用了很多宏定义,在查看代码时编译器并没有把未定义宏包括的代码块灰度显示。探索过程官方文档说明在VS code的C/C++插件文档中说

2020-09-13 14:08:41 4887 1

原创 使用GDB在VS Code调试Android C/C++代码(无需Android源码)

需求分析在开发Android Native程序时(仅C/C++代码,无APK应用),之前在调试的过程中一直只是使用添加LOG的方式来定位程序的问题,而在Linux上开发平台程序时,可以方便使用GDB工具来调试,所以迫切的希望在调试Android Native程序也能一样方便。探索过程官方文档说明在Android官方文档使用 GDB中介绍了如何使用GDB调试。它提到的前置条件是使用Android源码中gdbclient.py脚本,此脚本会设置端口转发,在设备上启动相应的 gdbserver,在主机上启

2020-08-19 14:22:30 3601 5

原创 git 服务端钩子做代码检查

需求分析在代码修改后可以对代码进行检查,比如代码规范检查、代码构建、单元测试等。我们需要禁止成员推送不符合规范的代码到服务端。Git 钩子能在特定的重要动作发生时触发自定义脚本。钩子分为客户端和服务器端两类。使用客服端钩子可以在commit时,对本地代码进行检查,可以参考使用git钩子对提交代码进行检查。考虑到客服端钩子需要每个成员单独配置,或者说不是一种强制手段,无法避免某成员跳过钩子,强制push代码到远程的行为,我们将主要研究如何使用服务端钩子来拦截非法push的问题。...

2020-08-11 11:01:12 2643 3

原创 Ubuntu 常用软件安装及说明

输入法搜狗输入法Ubuntu 18.04中最常用的就是搜狗输入法了,但目前在Ubuntu 20.04中由于依赖问题无法安装。下载地址:https://pinyin.sogou.com/linux/?r=pinyin百度输入法目前在Ubuntu 20.04中个人体验最佳的输入法,安装使用方法,请参考ubuntu20.04安装百度输入法,亲测有效!下载地址:https://srf.baidu.com/site/guanwang_linux/index.html使用Dee...

2020-08-04 09:07:13 663

原创 如何在无C++运行环境下,运行大部分的C++代码(三)

前言承接上一篇如何在无C++运行环境下,运行大部分的C++代码(一)使用gcc编译C++的过程编译C++的虚函数// test.cpp#include <stdio.h>class Parent{public: void Function1() { printf("This is parent,function1\n"...

2020-05-07 15:46:42 618

原创 如何在无C++运行环境下,运行大部分的C++代码(二)

前言虽说没有C++运行环境,但是有C运行环境,可以直接把所有的C++代码,转化为C代码。可以参考以下链接:如何将C++改为CC++转为c程序但是由于C++原有代码量巨大,手动改成C代码比较费力,而且存在后续更新维护的问题。那有没有其它方式,在不改动或较少改动C++代码的情况下,能让代码变得可用呢?简单分析C++和C的编译过程一个简单的测试代码// test.cp...

2020-05-06 11:34:13 1010

原创 如何在无C++运行环境下,运行大部分的C++代码(一)

虽说没有C++运行环境,但是有C运行环境,可以直接把所有的C++代码,转化为C代码,

2020-04-30 18:22:50 2501

原创 Android编译内核并刷入

1、下载对应开源内核代码使用git clonegit clone --depth=1 https://github.com/ASUS-X00TD/android_kernel_asus_sdm660 -b S240或者直接在github上下载:https://github.com/ASUS-X00TD/android_kernel_asus_sdm660/tree/S2402、下...

2019-02-13 15:48:34 3317 2

aarch64-linux-android-4.9.zip

NDK交叉编译之自定义工具链

2019-07-11

AIK-Linux工具

Originally only for Google Pixel/Nexus/AOSP standard boot.img files, built-in support has now expanded to Android Verified Boot (AVB)/ChromeOS/SignBlob signed boot.img files, Barnes & Noble Nook "Green Loader" signed boot.img files, Samsung/Spreadtrum DHTB header signed boot.img files, the Samsung/Marvell PXA1088/1908 board boot.img variant (AOSP-PXA), Loki patched boot.img files, Sony SIN signed/packaged kernel.elf extraction, Sony ELF kernel.elf files (repacked as boot.img for unlocked bootloaders), Rockchip KRNL signed ramdisk image files, MTK headers for zImage/ramdisk, and LG Bump/Samsung SEAndroid footers for boot.img.

2019-02-13

自用boot.img

boot.img是Android系统启动所必须加载的文件。简单的说,boot.img包含两部分,分别为kernel 和ramdisk。

2019-02-13

物联网专业概论论文

物联网专业概论论文,有需要的可以看看物联网专业概论论文,有需要的可以看看

2014-04-23

空空如也

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

TA关注的人

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