Articles of root

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,但是这个文件似乎也在启动时被重写了。

如何从设备上的命令行卸载Android应用程序

我可以使用adb uninstall 从我的计算机上卸载设备上的应用程序,但我想对实际设备上的脚本执行相同的操作。 我也尝试使用am运行android.intent.action.DELETE意图,但它会提示用户进行确认。 鉴于设备已植根,是否可以在设备上运行命令以卸载应用程序而无需用户操作/确认?

安装Android APK没有提示

我们正在撰写一款在大屏幕上展示广告的Android应用。 我们有一个广告客户可以选择广告的后端,因此它们几乎可以立即更新。 因为会有很多Android盒子运行(插入HDMI屏幕),我们应该能够远程更新我们的软件。 情况就是这样: 主应用程序持续运行(除非关闭),用户永远不会看到任何与Android相关的内容。 我们需要一个更新程序应用程序来侦听更新并删除主apk,安装一个新的apk。 在更新时,我们将显示“正在更新,请稍候”的活动,直到新的主apk安装并显示。 我们需要的: 我们需要有关如何实现更新机制的帮助,而不会在ROOTED DEVICE上提示用户。 我们有什么: 更新程序应用程序挂钩到启动服务启动的启动接收事件(此服务将侦听更新,这将很快由同事实施)。 该服务可以启动一个活动,该活动将在更新时提示更新信息。 在更新程序活动中 try { Process proc = Runtime.getRuntime().exec(new String[]{“su”, “pm install -r /mnt/sdcard/MYFOLDER/testAPK.apk”}); stringBuilder.append(String.valueOf(proc.waitFor())); stringBuilder.append(“\n”); } catch (Exception e) { if (e instanceof IOException) { Log.d(TAG, “IOException”); } else if (e instanceof InterruptedException) { Log.d(TAG, “InterruptedException”); } else { e.printStackTrace(); } } StringBuilder打印11,但如果我给出随机的现有命令,它会一样。 […]

如何通过Android SDK获得root权限?

我正在学习Android编程,我想创建一个必须以root身份运行的应用程序。 合乎逻辑的是在Android Manifest中添加root权限。 我在文档中看到了这个链接 ,特别注意到了FACTORY_TEST权限 : public static final String FACTORY_TEST 自:API级别1 作为制造商测试应用程序运行,以root用户身份运行。 仅在设备以制造商测试模式运行时可用。 常量值:“android.permission.FACTORY_TEST” 这是最好的方式吗? 如果无法使用SDK,我如何使“根”应用程序工作?

通过ADB以root身份启动脚本

我已经创建了一个脚本来安装分区并在我的Android系统中执行一些操作。 我将脚本保存为Android的/ bin文件夹中的install.sh。 我想从ADB调用脚本,它本身是从Windows上的批处理文件调用的,但它需要以root身份执行。 我尝试的第一个解决方案是使用调用脚本 adb shell “su -c sh /bin/script.sh” 但它不起作用,因为它给我一个shell访问权限(具有root权限),但没有执行任何操作。 我也试着打电话 adb root “sh /bin/script.sh” 但我得到以下错误 adbd cannot run as root in production builds 然后我试着写 su -c “command” 对于我的脚本中需要root访问权限的所有命令,但我遇到了同样的问题。 当我运行脚本时,我只获得一个root shell,并且没有执行任何操作。 如果我手动使用第一个解决方案(例如我称之为adb shell su,然后是我的脚本),它就可以了。 但是,重点是自动化该过程,以便可以从另一个脚本调用adb shell。 你知道我怎么能做到这一点吗? 谢谢 !

绕过android usb主机权限确认对话框

我想在工业中使用android, 我可以使用slickdevlabs.com库连接到Profilic和Ftdi USB转串口芯片,没有任何问题。 应用程序有一个服务,它在启动时启动,连接到USB串口并执行其他操作。 我的问题是主机设备没有与用户进行任何交互, 所以当android问 Allow the app “MyAPP” to access the USB device ? [checkmark]Use by default for this USB device Cancel OK 没有人点击确定。 即使我默认检查使用…checkbox,如果我重新插入USB,或重启主机设备,它会在下次启动时再次询问。 我使用SuperUser模式运行服务和应用程序,但没有区别,它再次询问。 我添加了意图过滤但没有区别,它每次都会问我。 任何意见如何绕过或禁用它? 我有root和SU访问权限。

应用程序启动前崩溃:SecurityException:Permission Denial:INTERACT_ACROSS_USERS_FULL

背景 我有一个root设备,它是Galaxy S3 I9300,基于Android 4.3的三星基于股票的ROM。 运行我正在使用此设备的应用程序时,我从未遇到任何问题。 问题 从昨天开始(我没有更改设备上的任何内容),每次打开应用程序时,它会显示很短的时间,在没有任何崩溃对话框的情况下关闭,但它会显示下一个日志: 01-30 09:27:18.325: E/DatabaseUtils(2366): Writing exception to parcel 01-30 09:27:18.325: E/DatabaseUtils(2366): java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL 01-30 09:27:18.325: E/DatabaseUtils(2366): at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140) 01-30 09:27:18.325: E/DatabaseUtils(2366): at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038) 01-30 09:27:18.325: E/DatabaseUtils(2366): at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607) […]