本文记录了在命令行下使用gpg+pass+git进行密码管理的方法和步骤,以及在多台电脑间实现密码信息的同步。
对于这些命令的详细使用方法,可查阅文章末尾的参考部分。

使用GPG生成密钥对

你需要先创建GPG密钥,后面会使用该密钥来对密码信息进行加解密

1
$ gpg2 --gen-key

依照提示填写信息即可

真实姓名: Xxx Xxx
电子邮箱: xxxxxx@gmail.com

阅读全文 »

Android在bionic libc中实现了一种方法用于定位堆内存(heap)泄露的位置以及内存越界(此处我们只关注内存泄露问题)

开启libc debug

在Android系统中,通过属性来控制libc debug开关。不同的Android版本,所使用的属性会有所不同:

Android6.0以及更早的版本

阅读全文 »

转载自我的CSDN Blog

异常现象

一次新的视频播放卡死异常:4路视频10秒切换拷机,出现测试app画面卡死的异常,可以切换到其它界面。

CPU负载

查看负载,发现异常app有线程跑满CPU,且CPU大多消耗在内核层

1
2
3
4
5
6
7
8
9
10
11
12
User 2%, System 23%, IOW 0%, IRQ 0%
User 30 + Nice 0 + Sys 283 + Idle 899 + IOW 0 + IRQ 0 + SIRQ 0 = 1212

PID TID PR CPU% S VSS RSS PCY UID Thread Proc
2768 29663 1 24% R 1398368K 182332K fg u0_a53 Thread-13095407 com.test33.demo
32103 32103 2 0% R 2364K 948K fg root top top
77 77 0 0% S 0K 0K fg root fb-vsync
193 222 0 0% S 171340K 15512K fg system mali-renderer /system/bin/surfaceflinger
190 190 0 0% S 2472K 792K fg root lmkd /system/bin/lmkd
8 8 0 0% S 0K 0K fg root rcu_preempt
9 9 0 0% S 0K 0K fg root rcu_bh
10 10 3 0% S 0K 0K fg root rcu_sched
阅读全文 »

转载自我的CSDN Blog

有客户反馈视频播放一段时间就卡住了,且是必现。从logcat信息上发现是mediaserver进程异常崩溃了,Log如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
ABI: 'arm'
pid: 246, tid: 1710, name: DecoderAudio >>> /system/bin/mediaserver <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
r0 00000000 r1 89c17780 r2 00001180 r3 00000000
r4 b79822a0 r5 00001200 r6 89c17704 r7 89c17740
r8 89c17738 r9 00000000 sl 03598a78 fp 00000000
ip b64234c8 sp 89c176f8 lr b63eaf75 pc b6a8794c cpsr 200f0010
d0 f099f6d8f041f6c2 d1 f108f776f10ef738
d2 f08af7eff0a6f79c d3 f0f3f71df0c6f7ef
d4 f171f601f106f624 d5 f366f728f260f699
d6 f5a8f7bff45ff779 d7 f676f741f6c2f7d2
d8 3ef5d867c3ece2a5 d9 412e848000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 0000000000000000 d17 0000000000000000
d18 3ff0000000000000 d19 4091780000000000
d20 be5ae5d13e0705cf d21 4037f9dcb5112287
d22 bf2a017308872714 d23 3de5d93a5acfd57c
d24 3ec71de357b1fe7d d25 3e21e0e0299e8cc5
d26 4037f9dcb5112287 d27 40032e4a2a741b9f
d28 3f895d470d6e9486 d29 3f895d470d6e9486
d30 3fe797c6a435ce85 d31 400921fb54400000
scr 68000012

backtrace:
#00 pc 0001694c /system/lib/libc.so (memcpy+112)
#01 pc 00042f71 /system/lib/librkffplayer.so (_ZN7android13RkAudioPlayer10queueAudioEPsix+56)
#02 pc 0004d509 /system/lib/librkffplayer.so (_ZN7android9FFMPlayer6decodeEPsixxiPv+652)
#03 pc 0003167f /system/lib/librkffplayer.so (_ZN12DecoderAudio17SoftDecodeProcessEP8AVPacket+910)
#04 pc 00030ea9 /system/lib/librkffplayer.so (_ZN12DecoderAudio6decodeEPv+280)
#05 pc 00034203 /system/lib/librkffplayer.so (_ZN12PlayerThread11startThreadEPv+46)
#06 pc 000417c7 /system/lib/libc.so (_ZL15__pthread_startPv+30)
#07 pc 00019313 /system/lib/libc.so (__start_thread+6)
阅读全文 »

转载自我的CSDN Blog

前段时间有个客户报了个问题:他们的一个视频播放app在我们的Android 6.0 SDK上出现内存泄露,我用showmap查了下,该app在长时间播放视频过程中出现native heap内存的持续泄露。

原以为只要把libc debug开关打开了,就能很容易查出问题点,却没想到碰到了一些意想不到的情况。

阅读全文 »

转载自我的CSDN Blog

简介

HeapSnap工具,其名称源于Heap Snapshot,意即堆内存快照。其实现方式是:在不同的时间点上保存堆内存的快照,然后对比这些不同时间点的快照,找出导致内存增长的泄露点。

HeapSnap工具专门用于处理Android系统中native进程的heap内存泄露问题。它的实现是基于Android已有的libc debug机制,对目标进程的影响小,易于使用,且解决问题的概率高。

阅读全文 »

转载自我的CSDN Blog

​ 最新版本PuttyPlus 1.01,其实早在前几年就已经完成,当时想再加做些更新后发布,但后来一直都没有精力做这个事情,一个主要的原因是我的工作环境已经从windows转移到ubuntu系统。

​ 我以后应该也不会再花时间在该工具的改进上了;所以若有同仁有需要修改功能或者感兴趣可自行下载源码修改,可访问我的github下载源码:https://github.com/albuer/puttyplus

阅读全文 »