如何从 adb shell 存储联系人? [安卓]

问题描述 投票:0回答:2

我遇到了以下问题:Android adb 命令获取设备上的联系人总数

我的显示器无法工作。上面给出的命令仅显示我的联系人。有什么方法可以将其转换为备份文件吗?这样我就可以在我的备用 Android 手机上恢复它?

android adb android-debug android-debugging
2个回答
0
投票

我不确定是否可以手动创建备份文件(您需要知道联系人应用程序如何在.vcf文件中存储和读取数据),但如果您只想提取并保存数据:

只需使用“>”符号,例如:

adb shell content query --uri content://com.android.contacts/contacts | wc -l > Contacts.txt

或者(如果你想指定路径)

adb shell content query --uri content://com.android.contacts/contacts | wc -l > /home/pi/Desktop/Contacts.txt

这将创建一个名为 Contacts(具有 .txt 格式)的文件,其中包含命令输出


0
投票

显示联系人列并提取它们:

adb shell content query --uri content://com.android.contacts/raw_contacts > /home/enokseth/contacts_columns.txt 

返回原始文本文件中的列索引。

使用

awk
:

格式化为 JSON

adb shell content query --uri content://com.android.contacts/raw_contacts | \ 
awk -F '|' '{
split($1, id_parts, ", "); 
printf "{";
for (i = 1; i <= length(id_parts); i++) { 
split(id_parts[i], sub_parts, "=");
key = sub_parts[1]; 
值 = sub_parts[2];
gsub(/^ */, "", key);   # Supprimer les espaces en début de clé 
gsub(/ *$/, "", 值); # Supprimer les espaces en fin de valeur
printf "\"%s\":\"%s\"", key, value; 
如果(我< length(id_parts)) {
printf ","; 
}
} 
printf“} ”; `}' > /home/enokseth/osint-adb/contacts.json

© www.soinside.com 2019 - 2024. All rights reserved.