2012-01-06 36 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

相關問題