Articles of root

ADB root无法在模拟器上运行

我刚刚更新了模拟器26.0.3,现在我无法为新创建的模拟器运行adb root命令。 显示的错误如下: adbd cannot run as root in production builds 我已杀死并重新启动adbd如: adb kill-server adb devices 什么都没有帮助,任何想法? 我不确定有什么区别以及如何选择不同的构建,但是,如果在创建时启用了以下设置,则它具有root权限。

无法在生产设备上运行

当我运行我的应用程序时,下面的消息将打印在错误日志中。 我不明白问题是来自我的应用程序还是我的Android设备打印的消息。 E/NEW_BHD: Cannot run on production devices! 我读到了这个答案无法在有根的Android手机上运行’adb root‘ ,但我的设备没有root。 为什么要打印此错误日志?

如何在android中创建无法卸载的应用程序? 我们可以制作系统应用吗?

我们为Android手机客户提供一个默认应用程序。 哪个用户无法卸载。 我已使用此示例中的设备管理function但用户可以通过停用设置来删除应用。 我发现在System / apps文件夹中安装应用程序的另一种可能方式,如所有谷歌应用程序(我不确定)。 为此我需要root访问权限,所以我打算做以下操作,但不确定如何实现它。 以编程方式设备 在System / apps文件夹中安装应用程序 再次取消根设备 像许多系统应用程序一样,他们如何为这种function做些什么? 请帮忙。

是否可以在非root用户手机上运行本机arm二进制文件?

好吧,我一直潜水在低级Android编程(使用CodeSourcery工具链的本机C / C ++)的浑水中。 我在模拟器上试用了可执行文件,但它确实有效。 我想在真实的设备上试一试。 所以我插入了我的nexus并将文件推送到文件系统。 然后我尝试执行二进制文件,我得到了一个权限错误。 无论我如何安装它,或者我发送它的地方都没关系,我不是root,它不会让我执行它。 有没有办法在非root手机上运行这样的程序?

Runtime.exec():在Android中重启?

我正在寻找一种可用于重启root设备的解决方案。 我知道重新启动设备对于用户来说是非常糟糕的设计, 如此处所述 ,并且它不适用于应用程序。 主要目的是在测试期间重启手机(我在video聊天应用程序上工作,有时我需要在一切都向南时重启) 我观察到重新启动手机远比使用终端重启(例如adb shell或ConnectBot)要快得多 ,而不是通过使用ACTION_REBOOT进行重启,这是我无论如何都无法使用的。 目前,我可以获得超级用户权限 Process root = Runtime.getRuntime().exec(“su”); 但我不能做实际的重启。 我尝试了G1(HTC)和Galaxy S(三星)没有任何成功。 我find了/system/bin/reboot的reboot可执行文件 以下是我的一些尝试: Process reboot = Runtime.getRuntime().exec(“/system/bin/reboot”); Process reboot = Runtime.getRuntime().exec(“reboot”); Process reboot = Runtime.getRuntime().exec(“su reboot”); 我读过这篇关于Runtime.exec()陷阱的文章 ,但我想我不是这种情况。 由于使用ConnectBot使我能够做这样的动作,我很确定它是可能的。 请不要告诉我去看看ConnectBot代码 ,这是一个庞大而复杂的项目:) 你能帮我解决这个问题吗? 谢谢。

如何使Android设备始终处于唤醒模式?

成功设备root后。 现在,我需要让设备始终处于唤醒状态,即始终可见UI,无黑屏或任何白日梦屏幕。 为此,我想我要做到以下几点: 没有锁定屏幕 – 关闭 睡眠设置为“从不” 白日梦开始“关闭” 我发现所有关于应用程序层,即有一些应用程序可以执行上述任务。 但是,由于我的移动设备是根植的,我想用系统文件实现,这样即使其他一些应用程序试图改变上述function,那么它们也应该无法实现。

adb pull – >找不到设备

我有一个root用户手机,并以root方式运行adb。 我用adb shell成功访问了手机。 我可以浏览directorys,甚至是那些需要root的人。 当我尝试使用时: adb pull /data/data/my.app.path/databases/mydatabase.db /home/admin/Desktop/ 我收到以下错误: error: device not found adb shell保持连接,我可以继续浏览SD卡。 任何人都可以告诉我这个错误来自哪里以及我如何修复它来拉取文件?

Android:内核恐慌后如何获取内核日志?

我在我的设备上使用Android Custom ROM,也使用自定义boot.img(自定义内核+ cmdline + ramdisk)。 我现在希望能够在内核崩溃后立即查看内核日志,但遗憾的是我无法使用串行控制台。 好消息:Android的Linux内核中似乎有一些源/模块正是为此目的编写的。 例如,在我的内核的.config文件中激活了以下行: CONFIG_ANDROID_RAM_CONSOLE=y CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y CONFIG_APANIC=y CONFIG_APANIC_PLABEL=”oem_log” 我的问题是:在我强制内核恐慌以便测试它之后,即通过使用insmod panic.ko加载一个简单的恐慌内核模块,似乎没有日志写入名为oem_log的MTD(存在于我的设备上)。 其次,RAM在重启后也不包含日志,因为它似乎被清除 – 或者也没有写入日志。 那么如何在恐慌之后获取内核日志呢? 如果有一种方法可以测试正在运行的系统上的APANIC,那将会很有帮助。 也许通过使用内核调试系统? 截至目前,我对此很陌生。 在此先感谢您的帮助!

创建系统应用程序

我应该怎么做才能创建一个系统应用程序(获取在清单文件中使用android:sharedUserId=”android.uid.system”权限,而不会从包管理器收到有关认证问题的错误? 我使用带有固件的root电话。

通过带有adb的Clockworkmod启用USB调试

所以,几天前我的Nexus 7掉线了,现在屏幕上有一个很大的裂缝。 触摸屏坏了。 也就是说,我仍然可以看到会发生什么,但它没有反应。 我已经find了一种通过adb完全控制它的方法,并通过这个方法我根除了它。 但是,root用它擦除了我的所有数据和设置,包括USB调试。 结果是我无法控制它,除了关闭它和改变音量。 Clockworkmod内置了adb。我可以从我的电脑完全控制CWM,并访问我的平板电脑的文件等。 现在我的问题是,是否可以通过使用adb或任何其他方法的Clockworkmod启用USB调试,如果可以,如何? 我对所有文件和设置都有root访问权限,并且我能够获得任何所需的二进制文件,无论是本机Android文件,Cyanogenmod文件,任何本机ARM Linux二进制文件,还是别的(例如sqlite3) 。 我的电脑上还有一个adb backup -all -system备份,但据我所见,我无法通过CWM恢复它。 我可以访问Linux和Windows。 更新:我尝试使用sqlite3在/data/data/com.android.providers.settings/databases/settings.db启用adb,但重新启动后, adb_enabled的值被删除并重新插入底部,值为0.但是我改变的其他一些设置确实存在。 我也尝试修改/init.rc,但是这个文件似乎也在启动时被重写了。