어떻게 안드로이드 응용 프로그램에서 시스템 속성을 설정하는 방법?

TheMonkeyKing :

내가 할 필요가 setprop있지만 응용 프로그램에서.

지금은 단지 쉘 명령으로 실행하기 위해 노력하고있어 :

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "test:MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        exec("setprop service.adb.tcp.port 5555");
    }

    private void exec(String cmd) {
        Process proc = null;
        BufferedReader successResult = null;
        BufferedReader errorResult = null;

        Runtime runtime = Runtime.getRuntime();
        Log.d(TAG, "exec command: " + cmd);
        try {
            proc = runtime.exec(cmd);
            successResult = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            errorResult = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
            String s;
            while ((s = successResult.readLine()) != null) {
                Log.d(TAG, "exec command: " + s);
            }
            while ((s = errorResult.readLine()) != null) {
                Log.d(TAG, "exec command: " + s);
            }
        } catch (IOException e) {
            Log.e(TAG, "Error running shell command:", e);
        } finally {
            try {
                if (successResult != null) {
                    successResult.close();
                }
                if (errorResult != null) {
                    errorResult.close();
                }
            } catch (IOException e) {
                Log.e(TAG, "Error running shell command:", e);
            }

            if (proc != null) {
                proc.destroy();
            }
        }
    }
}

이 날을 제공 :

exec 명령 : setprop service.adb.tcp.port 5555

exec 명령 : setprop : '5555'로 설정 특성 'service.adb.tcp.port'실패

어떻게 응용 프로그램에서 시스템 등록 정보를 설정할 수 있습니까?

편집 : 미안 해요, 난 내 장치가 뿌리와이 응용 프로그램은 시스템 응용 프로그램입니다 추가해야한다.

레프 M. :

당신은 일반 응용 프로그램에서이 특정 속성을 설정할 수 없습니다. 그것은 시스템에 의해 보호됩니다.

안드로이드 5하기 전에 앱이 필요 sharedUserId="android.uid.system"매니페스트에서, 안드로이드 5 그것은 할 필요까지 sharedUserId="android.uid.shell".

당신은 단지 개발 보드 및 사용자 정의 ROM에이 작업을 수행 할 수 있도록 응용 프로그램이 사용자 ID 중 하나가있는 경우 그러나,이 시스템 인증서로 서명해야가 설치된다.

또 다른 옵션은 장치가 뿌리 경우, 당신은 스와 함께 setprop 명령을 실행할 수 있습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=203945&siteId=1