为了在端口 & lt; 1025 上打开插座, 需要 root 存取 。 我到底要怎么给我的应用程序提供这种高级权限? 我知道我可以在 shell 中运行 su 命令以获得 root 存取权限, 但只要在 1025 端口打开插座即可吗? 或者我需要运行某种命令, 比如 su open socket 0.0. 0.0 0. 0. 0. 80 或其它东西? 我非常困惑, 因为有这么少的资源可用于此 。 谷歌的目的是什么?
以下是我为获得根接入所能做的 。 http://www.youtube.com/watch?v=jmfvX8zvsS0&list=Uk1SpNzOs4MYmr0UICENTg&index=4& feature=plcp
我刚写了这个:
public class RootTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String cmds[] = {"su", "-c", "ls /system/app"};
Shell shell = new Shell();
String text = shell.sendShellCommand(cmds);
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(text);
try {
ServerSocket socket = new ServerSocket(80);
Log.d("Root", "Opened socket on port 80!!!");
}catch(Exception e) {
Log.d("Root", "Failed to open socket on port 80!!!");
e.printStackTrace();
}
}
});
}
}
这是它运行命令 su, -c, 然后是 / system/ app 当单击按钮时是 / system/ app 。 然后它获得输出并在文本视图上显示它( 它实际上有效 。 我得到了 su 快速和 选中的接受, 并在 / system/ apps / 中列出了所有内容 ) 。 但在此之后, 我试图在 80 号 端口打开插座, 它仍然说 允许 拒绝 。 应用程序有 根权限, 但仍然无法打开套座! 在对齐时, 它打印了“ 80 号端口没有打开套座!!!!!! ” 。 正如我告诉它的那样, 当例外被捕获时, 我能够做什么来打开 80 号端口插座而没有被允许?