Android 在三星4.4.2上调试本机应用程序;“包装未知”;使用run-as命令

Android 在三星4.4.2上调试本机应用程序;“包装未知”;使用run-as命令,android,Android,在Galaxy S4上尝试通过Eclipse调试Android本机应用程序时,我在run-as命令中遇到了一个“package is-unknown”错误 有一个open声明问题,它与/data/system/packages的权限有关。列出文件,该文件必须是rw rw--r,而是rw rw--。因此,建议的解决方案的另一个方面是建立手机的根目录并更改权限。 我已经启动了手机,将packages.list文件的权限更改为rw-rw--r,但当我从eclipse启动“作为本机应用程序调试”时,权限

在Galaxy S4上尝试通过Eclipse调试Android本机应用程序时,我在run-as命令中遇到了一个“package is-unknown”错误

有一个open声明问题,它与
/data/system/packages的权限有关。列出
文件,该文件必须是
rw rw--r
,而
是rw rw--
。因此,建议的解决方案的另一个方面是建立手机的根目录并更改权限。 我已经启动了手机,将packages.list文件的权限更改为
rw-rw--r
,但当我从eclipse启动“作为本机应用程序调试”时,权限将更改回
rw-rw--


我怎样才能解决这个问题?即使手机是根目录的,我也必须回闪固件吗?

在这个问题上,我已经绞尽脑汁好几天了。 在写这篇文章的时候,我能够在三星手机上用安卓4.1.2调试本机代码。然而,一款搭载安卓4.4.2的三星Galaxy S5却一直在与我对抗:

gdbserver输出:

运行方式:包“x.y.z”未知

验证应用程序是否是使用NDK_DEBUG=1构建的

作为一种“丑陋”的解决方法,似乎可以在根设备上将“运行方式”的权限从750更改为4750;在Windows 7计算机上:

  • 使用USB将设备连接到主机PC
  • 在主机PC上打开命令提示符
  • 转到Android sdk文件夹的平台工具文件夹
  • 执行“adb外壳”
  • 在shell中,执行“sudo chmod 4750/system/bin/run as”
理论上,这应该可以解决问题。我无法测试这一点,但因为我目前没有一个根设备。我很高兴看到是否有人能真正测试这一点,并公布结果

我发现与此问题相关的以下两个参考文献非常有趣:

  • 我的收获是:

    • 谷歌已经为安卓4.4修补了这个问题。(参见参考链接的注释51和52,该链接提供了实际补丁)

    • 三星似乎确实有一个合适的安卓版本,而相应的补丁可能没有包括在内(见评论76)(这一声明可能需要一些挑战)

  • 这个,我的外卖:

    • 有些人说它已经修好了,有些人说它还没有修好

请格式化您的问题,使其更具可读性,并提供一些关于该链接背后的内容的信息,因为该链接将来可能会出现