当前位置:首页 > 资讯 > 正文

程序员资料汇总

程序员资料汇总

半导体行业观察 专利之星检索系统 MTK Document Center (DCC) MTK eService login 账号已失效 专注于移动设备(尤其是智能手机和平板电脑)的开发、定制和破解 汽车诊断

1、你和此网站之间建立的连接不安全

”网站连接不安全” 是浏览器对 HTTP 网站的警告提示,表示这个网站使用了 HTTP 协议传输数据,提醒用户谨慎访问此网站。解决方法如下:首先,使用键盘组合键 “win+R” 打开运行窗口;输入命令 inetcpl.cpl 回车确定即可进入;进入弹窗后,上方选项中切换为 “安全” 选项,下拉找到 “自定义级别 ©”,鼠标单击进入;进入设置弹窗,下拉找到并双击 “其他” 选项;下拉找到 “显示混合内容”,修改勾选为 “启用”,点击 “确定” 即可;弹出提示框,点击 “是” 即可;再次回到上一个页面,点击 “默认级别”,将左侧该区域的安全级别调低,点击 “确定” 即可。

1、在windows 10 安装了python-3.9.6-amd64.exe后,为什么在cmd上,python --version还是没有显示版本?

可以用where python 看看当前启用的是哪个python, 如果不是预期的python, 修改path 环境变量,让预期的python 放在最前面。

2、如何列出文件夹的树形结构? 用 tree /F 文件夹路径
3、用 “C:Program FilesMcAfeeAgentx86frminst.exe” /forceuninstall 卸载时出现如下提示:无法终止服务 McAfee Agent Common Services,请确认您有足够的权限终止。

要以管理员身份运行命令行 关于处于托管模式时无法删除mcafee agent

4、安装语言包

按键盘Win+R,输入lpksetup命令,点击【确定】

5、win10开机出现fixing stage,导致每次非法关机要几个小时

首先进入驱动器属性,点击工具界面,可以看到检查驱动器中的文件错误 然后点击扫描驱动器,扫描完之后看看是否有问题 而对于一些硬盘有坏道或少量其他问题可以使用不影响硬盘开机使用,则可以将的Windows10开机检查磁盘的功能禁用掉。在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl,把键BootExecute的值删除。(autocheck autochk *)

6、扫描局域网IP

for /l %%i in (2,1,255) do ping -n 1 192.168.3.%%i

7、Beyond Compare试用结束

@rem reg query “HKEY_CURRENT_USERSOFTWAREScooter SoftwareBeyond Compare 4” reg delete “HKEY_CURRENT_USERSOFTWAREScooter SoftwareBeyond Compare 4” /v CacheID /f @rem rd /s /q “C:UsersAdministratorAppDataRoamingBCompare” del /Q “C:UsersAdministratorAppDataRoamingBCompareBCompare.ini” pause

8、正则表达式

以关键词开头:^io.netty

1、批量截屏
 
 

FAQ

1、对于类似ninja那样没有分行的文件,怎么查找内容?
 

把关键词的前后80字写打印出来

2、修改PATH 变量
 
3、UBUNTU 16 执行某个文件报错:version `GLIBCXX_3.4.22’ not found

$ ./xlogel --help ./xlogel: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22’ not found (required by ./xlogel)

 

ubuntu如何从升级glibc失败中恢复 Windows Subsystem for Linux(WSL)的安装

安卓 offer 收割基

LeetCode

内核 内核2 内核-可查找 aosp 新 aosp 1-9 aosp 1-10

github 解决github有时能访问有时不能访问的问题

VSCode+clangd阅读linux内核源码

source build/envsetup.sh lunch mmm development/tools/idegen/ ./development/tools/idegen/idegen.sh

1、查内核/android版本

cat /proc/version

2、屏幕信息

dumpsys display | grep DisplayDeviceInfo

3、Android常用ADB调试命令汇总

Android常用ADB调试命令汇总

4、mtk日志

adb shell am broadcast -a com.mediatek.mtklogger.ADB_CMD -e cmd_name start/stop --ei cmd_target 1/2/4 【打开/关闭mtklog, 124分别表示mobilelog, modemlog, networklog】

5、资源限制

shell -> ulimit init.rc -> setrlimit c ->setrlimit

6、内核日志控制

echo 1 4 1 7 > /proc/sys/kernel/printk; /proc/sys/kernel/printk

7、镜像导入导出

导出安卓分区镜像

adb forward tcp:8888 tcp:8888 #开启手机和电脑的传递数据的TCP连接 dd if=/emmc@usrdata | busybox nc -l -p 8888 #手机上开始传输挂载的/emmc@usrdata ,即/data分区 nc 127.0.0.1 8888 > /home/kali/android_data.dd

导出 nc -l 3721 > D:boot.img (pc端命令) busybox nc 192.168.1.100 3721 < /dev/block/by-name/boot (设备端命令192.168.1.100 是pc端地址) 灌入 busybox nc -l 3721 > /dev/block/by-name/boot (设备端命令) nc -w 3 192.168.1.113 3721 < D:boot.img (PC端命令192.168.1.113 是设备端地址)

8、机顶盒相关命令

Android系统调试指令 ls /proc/msp/win*

9、
tech stack

linuxStack

FAQ

1、如何把文件集成到ramdisk?

例:external/e2fsprogs/e2fsck/Android.bp

 
2、Compiling Busybox for android

these instructions for busybox-1.24.1 apt-get install libpam0g-dev libsepol1-dev libselinux1-dev libncurses5-dev setup a standalone toolchain, i used platform android-14 from ndk-r10d. add toolchain/bin to path. $NDK/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-14 --install-dir=~/android make android_ndk_defconfig make menuconfig busybox settings -> build options -> update sysroot to to your ndk PATH if building for 5.x+, added -pie -fpic -fPIE to CFLAGS -pie to LDFLAGS uncheck static build (doesn’t work for android-14) remove misc/i2c support android busybox 编译指南 busybox 已编译好的

3、android studio 访问https失败,改为http报安全问题。解决方法:
 
4、super.img 是如何编译出来的?

如链接:android10 super.img编译 各种image的生成 android 9

5、vbmeta.img 是如何编译出来的?

如链接:vbmeta.img镜像生成 Android 10 metadata 分区说明

6、编译参考手册

Android编译系统参考手册

7、ninja blueprint kati

Android 编译之android.bp

8、如何把模块集成到recovery

可以参考recovery bin文件,加上“recovery: true”

110 cc_binary { 111 name: “recovery”, 112 recovery: true,

9、ninja介绍

ninja:一个简单的构建方式 ninja文件阅读器 Ninja编译介绍

10.git lg

git lg是一个联合命令,非git原生,需要先运行下面的命令 git config --global alias.lg “log --color --graph --pretty=format:‘%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit”

11、解包打包

展锐T7520(ANDROID 11) boot.img解包

12、LOCAL_PROPRIETARY_MODULE

LOCAL_PROPRIETARY_MODULE 是否为Vendor专有模块。 Vendor模块是特定于供应商的可执行文件或共享库(必须将这些模块安装到供应商分区中)

13、missing and no known rule to make it

ninja: error: ‘device/goke/kunlun/component/libclientadp/libudrm2w2_Android.so’, needed by ‘out/target/product/GK6323V100C/obj/SHARED_LIBRARIES/libudrm2w2_Android_intermediates/LINKED/libudrm2w2_Android.so’, missing and no known rule to make it 缺少文件。

14、framework,service 调试局部变量不显示值

-PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true +PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := false

adb

1、find 忽略显示“No such file or directory”等权限问题

后面添加”2>/dev/null“:find -name “ssh” 2>/dev/null

2、查看有哪些环境变量及变量的值 export echo
 
3、动态库的依赖 ldd
 
4、adb 是怎么把pc和android 终端连接起来的

关于adb参与android调试的理解

5、调试toast

setprop log.tag.NotificationService D logcat -s NotificationService 对于NotificationService ,设置属性后要 kill -9 system_server_pid,让开关生效 static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG);

KERNEL 层

1、crash 工具

crash-8.0.1 : $ cat /proc/version Linux version 4.4.0-210-generic (buildd@lgw01-amd64-009) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ) #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 sudo apt-get install bison

cc -c -g -DARM64 -DGDB_10_2 main.c main.c:20:20: fatal error: curses.h: No such file or directory compilation terminated. Makefile:334: recipe for target ‘main.o’ failed make[4]: *** [main.o] Error 1 sudo apt-get install libncurses5-dev

CRASH安装和调试 crash工具搭建 crash-utility gdb

2、gdb 工具

Android安全(八)–gdb调试

3、linker 工具

android源码分析之linker初始化

NATIVE 层

1、strace工具用法及跟踪分析应用

Linux中strace工具用法及跟踪分析应用

2、crash-catcher

crash-catcher

3、使用 strace - 官方文档

使用 strace

应用层

1、

Android Studio导入系统源码

应用层

1、分析应用性能-官方

分析应用性能

系统层

android性能分析之常用命令 性能优化小结

1、 IORap

IORap:让Android 11 提高 App 冷启动速度 5% 以上

2、art profile

art profile生成差异的问题分析

3、面试问帧率优化,看看matrix是怎么做的

面试问帧率优化,看看matrix是怎么做的

4、抓开机 trace

How to capture Boot-up trace

如何判断使用的是dalvik还是art虚拟机

用属性 persist.sys.dalvik.vm.lib判断(libdvm.so, libart.so)

DALVIK

ART

李曦课程 - 中科大 陈香兰-操作系统

ARM

汇编

汇编翻译

汇总

内存DEBUG汇总

MAT

利用Eclipse的MAT查找安卓内存泄漏问题

统计

怎样统计所有进程总共占用多少内存?

内存错误

使用mprotect定位踩内存故障

存储评估

1、ANDROID存储的评估指标有哪些?

功能性:文件系统(VFS、EXT4、F2FS、EROFS),挂载与fstab,vold,StorageManagerService,FUSE与直通模式,sdcardfs,存储快速统计与quota 性能: 可靠性:分区加密与dm-crypt、 文件级加密、镜像验证与dm-verity 、DAC与sandbox、MAC与selinux、NameSpace 能耗

存储器件

1、UFS

深度解读UFS 4.0的FBO特性 UFS 手机相关调试接口 5.4版本内核ufs设备信息查询方式

 

文件系统

1、F2FS

F2FS源码分析系列文章目录

2、查看当前系统支持哪些文件系统

cat /proc/filesystems

3、文件预读

VFS源码分析-Readahead预读机制

挂载

动态分区

EROFS

1、EROFS 解读

Linux 文件系统学习之 EROFS 源码阅读笔记

1、虚拟按键是通过哪种机制上报的?

1.在normal mode下,tp button也是和其它触摸事件一样,以坐标形式的input_event进行上报。在初始化时会通过tpd_button_setting()函数根据定义在tpd_custom_XXX.h文件中的配置信息将虚拟按键的坐标信息写在/sys/board_properties/virtualkeys.mtk-tpd中。工作时,tp driver将按下的点的坐标进行上报,Android上层会读取sys中的按键配置信息,再判断上报的坐标是否属于某个按键的坐标范围,以此将坐标信息转化为具体的按键键值。 2.在factory mode和recovery mode下,由于Android还未启动,所以按键事件不能采取1中的上报机制,而是利用tpd_button()函数来对按键进行直接上报处理。 所以,对于normal mode,按键事件不需要调用tpd_button()函数上报,而在factory mode和recovery mode下,必须调用tpd_button()函数对虚拟按键事件进行上报。

2、触摸屏快速点击事件误识别为滑动事件

[DESCRIPTION] 触屏太灵敏,有时候点击一下会误认为滑动事件,造成误识别。 [SOLUTION] 增大触发触屏滑动所需要的距离条件,将Config.xml(frameworksbasecore es esvalues)中的语句 8dp 修改为: 24dp

启动

1、Android Verified Boot (AVB)介绍

官网文档:Verified Boot-启动时验证 见链接:Android Verified Boot 2.0 最新安卓P AVB详解 android AVB2.0学习总结

2、在低端的产品中,发现开机文件系统挂载花费时间较多

对低端设备,看看对data分区的挂载参数有没有加密参数fileencryption=aes-256-xts,如果有,可考虑改为fileencryption=adiantum,可参看下列文档:启用 Adiantum

3、规范化启动原因-官方

规范化启动原因

4、回滚机制

Android RollBack机制实现原理剖析

5、bootloader 相关

MTK6735 pre-loader源代码分析

6、驱动

camera开机初始化流程

7、开机黑屏

android开机动画到桌面黑屏解决办法

开机优化

1、优化启动时间 *****

优化启动时间

2、禁用 UART 日志输出

Android 禁用 UART 日志输出示例

3、

充电

1、充电协议

BC1.2协议以及QC2.0/3.0快充协议学习笔记 BC1.2协议 USB-PD 协议 Battery Charging Specification, Revision 1.2, December 7, 2010 中文

电池健康

1、healthd 官网文档

Android 运行状况

窗口管理

1、如何让禁止截屏失效

frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

 
 

增加如下代码

 

图形图像

Android 图形图像 面试问你屏幕刷新机制、垂直同步信号 面试问帧率优化,看看matrix是怎么做的

图形-官方

MTK GPU打开
 
Android录屏技术方案

SYSTEMUI

SystemUI StatusBar 手机信号相关图标的显示和更新流程分析 systemui状态栏添加新图标

输入输出

输入系统_APP获得并处理输入事件流程

输入法的一些命令

//会输出当前设备正在使用的输入法 adb shell settings get secure default_input_method //会输出当前设备的全部输入法的详细信息 adb shell ime list //仅输出当前设备的全部输入法名称 adb shell ime list -s //修改当前设备的输入法 adb shell ime set xxxxxx adb shell settings put secure default_input_method xxxxxx

包管理

INSTALL_FAILED_TEST_ONLY原因和解决方法

活动管理

Android 面试黑洞——当我按下 Home 键再切回来,会发生什么

APP编程工具

1、离线编译

Android Studio 离线编译

C/C++编程

1、字符串格式化

使用fscanf读取含有数据间含有多个空格的数据

FAQ

1、android usb命令举例:

lsusb, svc usb, dumpsys usb,这些命令具体的用法可以看help,有很多功能。

2、Linux USB 在sys文件系统中是如何组织的?

举个例子: q3s:ls /sys/bus/usb/devices/ 1-0:1.0 1-1.3 1-1.3.1:1.0 1-1:1.0 1-1 1-1.3.1 1-1.3:1.0 usb1 以 “usb” 开头的表示USB 控制器,确切的说, 他们指向每个控制器的根集线器 “root hub”,而数字则代表总线标号。 在上例中,只有一个控制器,所以只有标号1,故取名为 “usb1”. “1-0:1.0” 是一个特例,指向根集线器的接口 其他项表示真正的USB设备和他们的接口。设备的命名格式如下: 总线-端口端口.端口 … 接口用:分割后紧随其后,其格式如下: :配置.接口 集线器只能有一个接口,其他设备可以有多个接口

Linux之USB分析 Android手机如何通过USB接口与外设通信 28388_USB LINUX USB驱动合集

selinux

1、selinux 官方文档

如链接:Android 中的安全增强型 Linux

加解密

1、铁线蕨算法 Adiantum

铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务 Android 加密之文件加密(FBE)

逆向工程

1、APP 逆向调试

android安全技术点 逆向工具-吾爱破解 recovery 镜像 vendor 镜像

2、Unidbg

SO逆向实战十三篇 Unidbg Hook 大全

3、命令

java -jar baksmali-2.5.2.jar deodex services.odex -o services -d framework/arm/ java -jar smali-2.5.2.jar assemble services -o services_o.dex

vdexExtractor -i dex/boot-framework_classes.vdex -o dex/boot-framework_classes.cdex compact_dex_converter -o -w boot-framework_classes.cdex

4、IDA
IDA报错:The SHT entry size is invalid

从内存中dump出来的SO没有section header table,需要修复一下

AVF 框架

1 、AVF - 官方

Android 虚拟化框架 (AVF)

1、查端口

netstat -nap | grep portid lsof -p 1415 | grep IPv

1、busybox 可以用ftpget 和 ftpput 来调试ftp的连接问题,-v 可以知道错在哪个阶段。

adb push ‘Downloads/busybox-armv7l’ /data/local/tmp/ cd /data/local/tmp ./busybox-armv7l ftpget -u ftpuser -p 123456 10.11.108.29 /yzx.txt

2、ftp的上传下载测试网站:https://test.rebex.net/
3、windows ftp 命令

ftp和ftpget 命令 vsftp的简单使用

1、Web页面全链路性能优化指南
2、一文带你看透 Chrome 浏览器架构
3、Android 使用Chrome DevTools调试WebView
wext API 有那些?
wext API 哪个接口可以获取mac地址?
如何用wpa_cli 查看出,wpa_supplicant是如何与DRIVER进行通信的?wext,ndis, 还是nl80211 ?

协议栈

专栏

FFmpeg常用命令

调试方法

在控制台上可以使用cat命令查看信息,例如cat /proc/msp/vdec00 如需查看帮助信息,请向模块输入help命令,例如echo help > /proc/msp/avplay00 记录当前系统的基本信息 /proc/msp/sys 记录Demux和端口的绑定关系 /proc/msp/demux_main

电视

电视 voabbc voabbc88

amlogic
1、memtrack

android.hardware.memtrack@1.0 hardwareinterfacesmemtrack1.0

memtrack.amlogic.so hardwareamlogicmemtrack

MockingBird实现AI拟声

语言模型串烧(BERT前) 语言模型串烧(BERT后) #编程语言

PYTHON下载加速

最新文章