Use superuser privileges

This code will only function on a rooted device.

Code

su.js
var globs={};
 
//Called when application is started.
function OnStart()
{
  var lay = app.CreateLayout("Linear","Vertical,FillXY");
  globs.lst = app.CreateList("");
  lay.AddChild(globs.lst);
  app.AddLayout(lay);
 
  globs.sys = app.CreateSysProc( "su" );
  var shellfolder = "/sdcard/sjgApps/shell/"
  app.MakeFolder(shellfolder);
  globs.stdout = shellfolder + "stdouttemp.txt"
  globs.redir = " >> " + globs.stdout + " 2>&1 \n ";
 
  sysEmpty();
  sysOut("ls -l /data/ ");
  sysOut("exit");
  setTimeout(display,500);
 } 
 
function display()
{
   //create list eqivalent to app.ListFolder
   var list = app.ReadFile(globs.stdout).replace(/\ +/g, ' ').split("\n");
   //populate
   var s = "";
   var len = list.length;
   for (var i=0;i<len;i++)
   {
      var rec = list[i];
      var isfolder = (rec.charAt(0)=="d")
      var fil=rec.slice(rec.lastIndexOf(" ")+1);
      globs.lst.AddItem("/sdcard/"+fil,null,(isfolder?"folder":null));
   }
}
function sysEmpty(stamp)
{
    app.DeleteFile(globs.stdout);
    if(stamp) sysStamp();
}
 
function sysOut (cmd, stamp)
{
   if(stamp) sysStamp();
   globs.sys.Out(cmd + globs.redir)
}
 
function sysEcho(msg, stamp)
{
    sysOut('echo "' + msg +'"', stamp );
} 
 
function sysStamp()
{
    var d = new Date();
    sysEcho("**************************");
    sysEcho(d.toISOString()+" *");
    sysEcho("**************************");
}