I/system_server: oneway function results will be dropped but finished with status OK and parcel size 4

Viewed 6167

I'm seeing this in logcat sometimes, but don't know what it means.

2 Answers

I solved by passing view on in function argument

My XML

<TextView
android:onClick="@{ (view) -> handler.showSectionSelectionDialog(view) }"

My fragment

fun showSectionSelectionDialog(view: View) {
    Log.d(TAG, "showSectionSelection: clicked")
}

Its a binder message from onTransact(). if the process calling the service does not have the appropriate selinux permissions. http://selinuxproject.org/page/NB_SEforAndroid_1#Android_Classes_and_Permissions. you can simulate/get the same error from this snippet.

public void Run(){
        try {
            Process process = Runtime.getRuntime().exec("/system/bin/cmd wifi");
            BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()));
            StringBuilder result=new StringBuilder();
            String line = "";
            while ((line = bufferedReader.readLine()) != null) {
                result.append(line);
            }
            TextView tv = (TextView)findViewById(R.id.sample_text);
            Log.d(TAG, "Run: "+result.toString());
            tv.setText(result.toString());
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return;
    }

returns the same logcat error.

(the cmd binary in adb sends a shellCommand binder transaction). running adb shell wifi runs the command correctly though, since the shell selinux context has the appropriate permissions.

Related