2012-01-06 72 views
4

我想让我的应用程序成为系统应用程序。我设法在root和busybox的手机中完成它。任何想法如何实现这个没有busybox?如何让我的应用成为系统应用?

Runtime.getRuntime().exec(new String[] { "su", "-c", "mount -o rw,remount -t yaffs2 /system; " + 
       "cp `ls /data/app/xxx*` /system/app; " + 
       "rm /data/app/xxx*; " + 
       "mount -o ro,remount -t yaffs2 /system; " + 
       "reboot" }); 

除此之外,我还面临另一个问题。如果我从系统应用程序>用户应用程序切换回我的应用程序并重启。即使应用程序已经驻留在/ data/app中,Android系统仍会将我的应用程序识别为系统应用程序。

我用下面的代码来检查我的应用程序是否是系统应用:

android.content.pm.ApplicationInfo.FLAG_SYSTEM 
+0

我想你可以在不使用busybox的情况下使用'cat'命令。我认为它和cp – Jakar 2012-01-06 05:12:25

+0

一样注意到,那么“rm”又如何呢?这是busybox命令还是它默认的android? – Jason 2012-01-06 06:24:37

+0

我觉得'rm'很忙,但我不确定。您可以在模拟器上使用adb shell来查明。 – Jakar 2012-01-06 10:15:58

回答

0

请参阅下面的代码,移动用户应用APK到系统应用的APK与RootTools方法的帮助下生根装置。

PackageInfo paramPackageInfo = null; 
     try { 
      paramPackageInfo = this.getPackageManager().getPackageInfo(
        this.getPackageName(), 0); 
     } catch (NameNotFoundException e) { 
      e.printStackTrace(); 
     } 

     ApplicationInfo localApplicationInfo = paramPackageInfo.applicationInfo; 

String str1 = "/system/app/" + localApplicationInfo.packageName 
       + ".apk"; 
     String str2 = "busybox mv " + localApplicationInfo.sourceDir + " " 
       + str1; 

     RootTools.remount("/system", "rw"); 
     RootTools.remount("/mnt", "rw"); 

     CommandCapture command = new CommandCapture(0, str2, 
       "busybox chmod 644 " + str1); 

     try { 
      RootTools.getShell(true).add(command).waitForFinish(); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (TimeoutException e) { 
      e.printStackTrace(); 
     } catch (RootDeniedException e) { 
      e.printStackTrace(); 
     } 

     RootTools.remount("/system", "ro"); 
     RootTools.remount("/mnt", "ro"); 

在您的应用程序中使用上述代码时,需要Busybox和超级用户应用程序。

+0

通过以上操作,您的应用不太可能成为系统应用。您还需要调整AndroidManifest,为应用程序提供正确的UID。然后正确的SELinux上下文。另外,新的KK和L可能使用不同的系统应用程序路径... – not2qubit 2015-02-12 17:44:13

相关问题