Android应用程序中的本机代码权限

Android应用程序中的本机代码权限,android,c,android-manifest,Android,C,Android Manifest,我在Android应用程序中运行了一些C,但我在以下行中被拒绝了权限: socket_local_client("vold", ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM) 我假设它在manifest.xml中具有权限,但我找不到添加到应用程序的正确权限 Java执行C的过程如下 final int[] processId = new int[1]; final FileDescriptor fd = Exec.createSubprocess

我在Android应用程序中运行了一些C,但我在以下行中被拒绝了权限:

socket_local_client("vold", ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM)
我假设它在manifest.xml中具有权限,但我找不到添加到应用程序的正确权限

Java执行C的过程如下

final int[] processId = new int[1];
final FileDescriptor fd = Exec.createSubprocess("/system/bin/sh", "-", null, processId);
final FileOutputStream out = new FileOutputStream(fd);
String command = getFilesDir() + "/zergrush\n";
out.write(command.getBytes());
out.flush();
这是我的清单(你会注意到这是我正在为HTC Rezound开发的z4root的一个变体)



您需要的唯一权限是
互联网
,所以这里还有其他事情要做。你有孩子时的健康吗。发布你的整个清单+更相关的代码,可能错误被标记在了错误的行上(我已经发生过这种情况,尽管很奇怪)。你知道你有两次互联网权限吗?我不确定它是否相关,但删除其中一个。我已经用清单和其他一些源更新了OP。这行代码在eclipse或logcat中没有标记为失败,但我通过C代码中的调试语句知道这行代码。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.z4mod.z4root2" android:versionName="1.3.0"
android:versionCode="6">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<application android:icon="@drawable/z4small"
    android:label="@string/z4root" android:debuggable="true">
    <activity android:name="z4root" android:theme="@style/Theme"
        android:launchMode="singleInstance" android:label="z4root"
        android:finishOnTaskLaunch="true" android:multiprocess="true"
        android:process=":three" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Phase1" android:theme="@style/Theme"
        android:launchMode="singleInstance" android:label="Phase1"
        android:finishOnTaskLaunch="true" android:multiprocess="true"
        android:process=":three" android:screenOrientation="portrait">
    </activity>
    <activity android:name="Phase2" android:theme="@style/Theme"
        android:launchMode="singleInstance" android:label="Phase2"
        android:finishOnTaskLaunch="true" android:multiprocess="true"
        android:process=":two" android:screenOrientation="portrait">
    </activity>
    <activity android:name="PhaseRemove" android:theme="@style/Theme"
        android:launchMode="singleInstance" android:label="PhaseRemove"
        android:finishOnTaskLaunch="true" android:multiprocess="true"
        android:process=":four" android:screenOrientation="portrait">
    </activity>
    <activity android:name="com.admob.android.ads.AdMobActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:configChanges="orientation|keyboard|keyboardHidden" />
    <receiver android:process=":remote" android:name="AlarmReceiver"></receiver>

    <meta-data android:value="xxxxxxxxxxxxx" android:name="ADMOB_PUBLISHER_ID" />
    <meta-data android:value="xxxxxxxxxxxxx" android:name="ADMOB_INTERSTITIAL_PUBLISHER_ID" />
</application>
<uses-sdk android:minSdkVersion="4" />