NDK debugging does not start: "package is unknown"

首先用sh -x $NDK_ROOT/ndk-gdb 找到ndk-gdb 失败的真正原因,发现是这里的问题,,然后搜索

 "package is unknown"      


NDK debugging does not start: "package is unknown"

This is a known bug of the Android platform. When you try to debug your NDK-based app, gdbserver fails to start and a message like below is shown:

run-as: Package 'com.android.gl2jni' is unknown

This happens due to two known bugs related to the run-as tool. The tool needs to read information about your app from the /data/system/packages.list file inside your Android device. In the case of the first bug, the tool is actually only reading the first 8KB of the file. Thus, if the line containing your app description is below the first 8 KB, run-as will fail. The second bug affects some 4.2.2 and 4.3 Android images by falsely restricting read rights of the packages.list file that contains all the package names.

8 Kilobyte Bug

Detection

  1. Retrieve the packages.list file by running the following command inside SDK\platform-tools:
    adb pull /data/system/packages.list
  2. If the file is larger than 8 kilobytes, your problem is caused by the 8 kilobyte bug.

Workarounds

There are three known workarounds  for this bug:

  1. Uninstall unnecessary apps from your Android device to reduce the size of the packages.list file
  2. Try renaming the app ID arbitrarily. The order of the lines inside packages.list depends on the hash value of the app ID. Thus changing the ID just a bit might put it within the first 8 KB.
  3. If your device is rooted, edit the packages.list file manually to put your app in front of the list.

Read Rights Bug

Detection

  1. Is your Nexus or Galaxy Android device using Android 4.2.2 or Android 4.3?
  2. Open Android shell. Change directory to "/data/system", run the command "ls -l". Are the access rights to packages.list "-rw-rw----" instead of "-rw-rw-r--" ? If yes, then your device's image is affected by the bug.

Workarounds

  1. Install the 4.3 factory image for the Android device manually. Do not install the mini 4.3 update after installing the image.
  2. If your device is rooted, change the read rights of the packages.list file.
  3. Add the set-uid bit to the run-as binary:
    su
    mount -o remount,rw /system
    chmod 4750 /system/bin/run-as
  4. Try other workarounds from the official bug thread.

这是具体的方法1.packages.list 文件的大小  2.特殊的android版本有问题,换个手机试试

猜你喜欢

转载自blog.csdn.net/xingxiliang/article/details/46329955
今日推荐