- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这个问题与 device-mapper-verity (dm-verity) 内核特性有关,它提供 block 设备的透明完整性检查。 dm-verity 有助于防止持久性 rootkit,这些 rootkit 可以保留 root 权限并危及设备。
以下命令可以很好地禁用或启用 userdebug 构建的 verity。
adb disable-verity
adb enable-verity
但是这些命令不适用于用户构建。在用户构建方面是否有其他选择?
最佳答案
简而言之,我还不能为您提供解决方案。
不过这里有一些有用的提示:那是我得到的错误:
C:\Users\Test>adb remount
dm_verity is enabled on the system and vendor partitions.
Use "adb disable-verity" to disable verity.
If you do not, remount may succeed, however, you will still not be able to write to these volumes.
remount of system failed: Permission denied
remount failed
(^一些准确的文本对于在 google 中搜索的人来说也很重要^)
当使用 IDA Hex-rays 进行逆向工程/反编译 '\sbin\adbd' 时,我注意到输出这个错误的相关adbd源码在net:
void remount_service(int fd, void *cookie)
{
char buffer[200];
char prop_buf[PROPERTY_VALUE_MAX];
bool system_verified = false, vendor_verified = false;
property_get("partition.system.verified", prop_buf, "0");
if (!strcmp(prop_buf, "1")) {
system_verified = true;
}
property_get("partition.vendor.verified", prop_buf, "0");
if (!strcmp(prop_buf, "1")) {
vendor_verified = true;
}
if (system_verified || vendor_verified) {
// Allow remount but warn of likely bad effects
bool both = system_verified && vendor_verified;
snprintf(buffer, sizeof(buffer),
"dm_verity is enabled on the %s%s%s partition%s.\n",
system_verified ? "system" : "",
both ? " and " : "",
vendor_verified ? "vendor" : "",
both ? "s" : "");
write_string(fd, buffer);
snprintf(buffer, sizeof(buffer),
"Use \"adb disable-verity\" to disable verity.\n"
"If you do not, remount may succeed, however, you will still "
"not be able to write to these volumes.\n");
write_string(fd, buffer);
}
if (remount("/system", &system_ro)) {
snprintf(buffer, sizeof(buffer), "remount of system failed: %s\n",strerror(errno));
write_string(fd, buffer);
}
if (hasVendorPartition()) {
if (remount("/vendor", &vendor_ro)) {
snprintf(buffer, sizeof(buffer), "remount of vendor failed: %s\n",strerror(errno));
write_string(fd, buffer);
}
}
if (!system_ro && (!vendor_ro || !hasVendorPartition()))
write_string(fd, "remount succeeded\n");
else {
write_string(fd, "remount failed\n");
}
adb_close(fd);
}
http://www.contrib.andrew.cmu.edu/~rjkohler/android-tools-5.0.1+git20141213/core/adb/remount_service.c顺便说一句,我以前 decomile 的 adb deamon 来自 Android 5.1.1。
所以这里的要点是partition.vendor.verified和partition.system.verified。如果它们设置为“1”,您将收到错误消息。
那么接下来将追查这些设置的原因和方式...以及如何防止这种情况发生。
然而,adb remount 所做的只是重新挂载 /system(可能还有 /vendor)。您也可以自己执行此操作:
adb shell su mount -o remount /system
那条小线通常可以帮助我完成同样的事情。su - 就可以了。(但是是的,su 命令只有在您的设备“root”后才会出现。)
关于android - 如何在 Android 设备上启用和禁用 dm verity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38304435/
通过反复试验,我发现GetPixel函数接受两个参数,一个用于 X,一个用于 Y,即使用于一维图像。在 1D 图像上,第二个索引必须设置为零。 image list := [3]: {1,2,3} l
除了 Funambol 或实现 OMA DM 的库之外,您是否知道任何 OMA DM 服务器的开源实现? 最佳答案 您可能想尝试一下OMA-DM simulator由 Koneki(Eclipse 开
我想计算给定ROI的曲线下面积,如附图,我想得到13到30的绿色曲线下面积,能否通过DM脚本实现这个功能? 以前从未做过类似的事情,任何建议谢谢! 最佳答案 如果图像是标签“A”,那么您可以简单地执行
我有两个模型:论坛应用程序中的帖子和图像,其中帖子使用 dm-is-tree 以父子格式排列。到目前为止,图像是 Post 模型的一部分。由于 Post 模型变得笨拙,我需要增加更多深度来标记图像,我
全部:我想构造一个函数。返回值的类型可能有两种可能:数字或字符串。起初,我以为可以使用重载函数(参见代码)。但这个函数必须有不同类型的输入。所以下面的代码会出错。有没有可行且简单的方法来解决这个问题?
要在 SAS 中打开表,我们可以使用 DM“VT {tablename}”命令。 关闭可视窗口的等效命令是什么??? 最佳答案 嗯...这个命令将关闭可视化窗口(用你的数据替换 {libref.dat
我正在尝试抓取我的 Instagram DM(直接消息)。但是,我不知道如何自动向下滚动该列以获取向我发送消息的其他用户名。我试过了 this ,以及滚动代码listed here . 但是,两者都不
我对 Blueprint 和 Spring DM 有点困惑: 据我认为的真实情况: Spring DM 是 Spring Source 定义的框架 Blueprint 是 OSGi 联盟定义的框架 B
是否有任何程序或任何控制台脚本可以监听麦克风输入,并且当噪音超过 db 中的某个阈值时,会播放音频文件? 最佳答案 需要考虑的一件事是,当使用 sox(例如使用 rec)录制时,sox 会输出一个文本
我正在尝试为我的机器人创建一个 VA 培训部分,它应该向我发送他们要求的培训类型。但是我碰壁了,不知道从这里该往哪里走。 我在网上寻找解决方案,但没有找到适合我的解决方案 if (cmd === `$
我开始研究 osgi 的主要目的是完成我面前的任务。基本上我将能够分发基于 Web 的应用程序并单独构建整个 Web 应用程序的特定功能,这样我就可以在 A 部署具有功能 a、b、c 的 Web 应用
vbs调用插件报:ActiveX部件不能创建对象,代码:800A01AD 报错如下图: 解决方法需要两步: 第一步改注册表: HKEY_CLASSES_ROOT\VBSFile\S
我正在寻找一个非常基本的配置示例。我有一个wap设置文件,我只想使用它来配置设备。 我正在寻找具有此功能的示例的API? 最佳答案 尝试S60 Platform: OMA Client Provisi
例如,当有人私信我的机器人时,它会说“你好”或“你为什么要私信机器人......?”我用这段代码试过了: @client.event async def on_message(message: dis
为了在SI图像中进行漂移校正,如下图所示: 我写代码: number max_shift=5 image src := GetFrontImage() number sx, sy, sz src.Ge
试图让我的机器人回复私信“这是一个私信”,但没有成功,这是我的代码: @client.event async def on_message(message): if message.guild
试图让我的机器人回复私信“这是一个私信”,但没有成功,这是我的代码: @client.event async def on_message(message): if message.guild
我需要等待一段时间才能关闭 OSGI 上下文。(给一些时间来完成当前正在运行的任务)。我在 extenderProperties bean 中遇到了 shutdown.wait.time 属性。 谁能
我在向特定人员发送 PM 时遇到了一些问题。我知道如何向消息的作者发送 DM。但是,我希望尝试将 DM 直接发送给特定的人。 async run(message, args) { if (ar
按照 Heroku 网站上的说明,我安装了 Postgress.app,安装了 pg gem,安装了 data_mapper,一切都很顺利。最后,尝试安装 dm-sqlite-adapter 并得到这
我是一名优秀的程序员,十分优秀!