根據不同的國家語言文安裝不同的apk,並且啓動相關的app,以完成同一個系統,展現不同的apk及應用的特性

項目要求:因爲有中英文版本的系統,同時有中英文的apk,要使用同一個系統升級軟件,那麼如何處理呢

將兩個apk同時打包進系統,系統啓動後根據中英文爲出發點,然後,進行安裝,啓動。

android 8.0

+++ b/build/make/core/Makefile
@@ -21,10 +21,10 @@ endif
 # The filter part means "only eval the copy-one-file rule if this
 # src:dest pair is the first one to match the same dest"
 #$(1): the src:dest pair
-define check-product-copy-files
-$(if $(filter %.apk, $(call word-colon, 2, $(1))),$(error \
-    Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))
-endef
+#define check-product-copy-files
+#$(if $(filter %.apk, $(call word-colon, 2, $(1))),$(error \
+#    Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))
+#endef
 # filter out the duplicate <source file>:<dest file> pairs.
 unique_product_copy_files_pairs :=
 $(foreach cf,$(PRODUCT_COPY_FILES), \
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/Android.mk b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/Android.mk
deleted file mode 100755
index a77873c..0000000
--- a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-LOCAL_PATH := $(my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := xxxxxxxx.ST04.5.1.6
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/bundled_persist-app
-LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_CERTIFICATE := PRESIGNED
-#LOCAL_DEX_PREOPT := false
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
-LOCAL_JNI_SHARED_LIBRARIES_ABI := arm
-MY_LOCAL_PREBUILT_JNI_LIBS := \
-    lib/arm/libcshell.so\
-    lib/arm/libecgl2jni.so\
-    lib/arm/libecgl2jni_vfpv3.so\
-    lib/arm/libmDNSEmbedded.so\
-    lib/arm/libmediaserver.so\
-    lib/arm/libping.so\
-
-MY_APP_LIB_PATH := $(TARGET_OUT_OEM)/bundled_persist-app/$(LOCAL_MODULE)/lib/$(LOCAL_JNI_SHARED_LIBRARIES_ABI)
-ifneq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI), None)
-$(warning MY_APP_LIB_PATH=$(MY_APP_LIB_PATH))
-LOCAL_POST_INSTALL_CMD :=     mkdir -p $(MY_APP_LIB_PATH)     $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), ; cp -f $(LOCAL_PATH)/$(lib) $(MY_APP_LIB_PATH)/$(notdir $(lib)))
-endif
-include $(BUILD_PREBUILT)
-
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/xxxxxxxx.ST04.5.1.6.apk b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/xxxxxxxx.ST04.5.1.6.apk
deleted file mode 100755
index d6a4b8d..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/xxxxxxxx.ST04.5.1.6.apk and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libcshell.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libcshell.so
deleted file mode 100755
index 6ed9715..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libcshell.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni.so
deleted file mode 100755
index 2539710..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni_vfpv3.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni_vfpv3.so
deleted file mode 100755
index 5c97a5b..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libecgl2jni_vfpv3.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmDNSEmbedded.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmDNSEmbedded.so
deleted file mode 100755
index 985cda9..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmDNSEmbedded.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmediaserver.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmediaserver.so
deleted file mode 100755
index 1448f06..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libmediaserver.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libping.so b/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libping.so
deleted file mode 100755
index fd20d94..0000000
Binary files a/device/rockchip/px5/preinstall/xxxxxxxx.ST04.5.1.6/lib/arm/libping.so and /dev/null differ
diff --git a/device/rockchip/px5/preinstall/preinstall.mk b/device/rockchip/px5/preinstall/preinstall.mk
index d0616f7..952442b 100644
--- a/device/rockchip/px5/preinstall/preinstall.mk
+++ b/device/rockchip/px5/preinstall/preinstall.mk
@@ -1,4 +1,3 @@
 PRODUCT_PACKAGES += Auto_V2.7.0.1148
 PRODUCT_PACKAGES += es113008
-PRODUCT_PACKAGES += xxxxxxxx.ST04.5.1.6
 PRODUCT_PACKAGES += sougou_input
diff --git a/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java b/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
index 8d43ab0..7ced6bc 100755
--- a/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -457,7 +457,7 @@ import android.provider.Settings.SettingNotFoundException;
 
 import android.app.ActivityManager.RunningServiceInfo;
 import android.app.ActivityManager.RunningAppProcessInfo;
-
+import android.content.pm.IPackageInstallObserver;
 public class ActivityManagerService extends IActivityManager.Stub
         implements Watchdog.Monitor, BatteryStatsImpl.BatteryCallback {
 
@@ -4209,6 +4209,57 @@ public class ActivityManagerService extends IActivityManager.Stub
             android.util.Log.d("vbackbone","RunningAppProcessInfo_pid="+si.pid+",,si.processName="+si.processName);
         }
     }
+    class PackageInstallObserver extends IPackageInstallObserver.Stub {
+        private boolean mFinished = false;
+        private int mResult;
+        private String mPackageName = " ";
+
+        @Override
+        public void packageInstalled(String name, int status) {
+           
+                mFinished = true;
+                android.util.Log.d("vbackbone","mFinished="+mFinished+",,name="+name);
+             //   mResult = status;
+                mPackageName = name;
+             
+        }
+    }
+     public void implementComposeOneEntity(String able) {
+       // boolean result = true;
+        String apkFileName;
+          if(able.equals("CN")){
+              apkFileName="/system/media/xxxxxxxx.9.1.8.apk";
+
+          }else{
+              apkFileName="/system/media/xxxxxxxx.9.8.1.apk";
+          }
+          android.util.Log.d("vbackbone","apkFileName="+apkFileName);
+        try {
+            
+            File apkFile = new File(apkFileName);
+            if (apkFile == null || !apkFile.exists()) {
+                android.util.Log.d("vbackbone","apkFileName123="+apkFileName);
+                return;
+            }
+            PackageManager packageManager = mContext.getPackageManager();
+            PackageInstallObserver installObserver = new PackageInstallObserver();
+
+            packageManager.installPackage(Uri.fromFile(apkFile), installObserver,
+                    PackageManager.INSTALL_REPLACE_EXISTING|PackageManager.INSTALL_ALLOW_DOWNGRADE, null);
+                   android.util.Log.d("vbackbone","apkFileName456="+apkFileName);
+               /* while (!installObserver.mFinished) {
+                  
+                }*/
+                android.util.Log.d("vbackbone","apkFileName789="+apkFileName);
+                
+            
+           
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+       // return result;
+    }
/////////////////////////// /////////////////////////// /////////////////////////// ///////////////////////////
     boolean startHomeActivityLocked(int userId, String reason) {
         if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
                 && mTopAction == null) {
@@ -4221,89 +4272,16 @@ public class ActivityManagerService extends IActivityManager.Stub
 
         String able=mContext.getResources().getConfiguration().locale.getCountry();
         android.util.Log.d("vbackbone","ableable="+able);
+        implementComposeOneEntity(able);
         if(able.equals("CN")){
 
            // getRunningServicesInfo();
             android.util.Log.d("vbackbone","ableable123="+able);
-            /*forceStopPackage("com.google.android.gms",0);
-            forceStopPackage("com.google.android.googlequicksearchbox",0);
-            forceStopPackage("com.google.android.partnersetup",0);
-            forceStopPackage("com.google.android.videos",0);
-            forceStopPackage("com.google.android.gms.persistent",0);
-            forceStopPackage("com.google.android.apps.maps",0);
-            forceStopPackage("com.google.android.youtube",0);
-            forceStopPackage("com.google.process.gapps",0);
-            forceStopPackage("com.google.android.ext.services",0);
-            forceStopPackage("com.android.vending",0);
-            forceStopPackage("com.google.android.configupdater",0);
-            forceStopPackage("com.google.android.onetimeinitializer",0);
-            forceStopPackage("com.google.android.packageinstaller",0);
-            forceStopPackage("com.google.android.inputmethod.latin",0);
-            forceStopPackage("com.android.chrome",0);
-
-
-            ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-            activityManager.killBackgroundProcesses("com.google.android.gms");
-            activityManager.killBackgroundProcesses("com.google.android.gms.persistent");
-            activityManager.killBackgroundProcesses("com.google.process.gapps");
-            activityManager.killBackgroundProcesses("com.android.vending");
-            activityManager.killBackgroundProcesses("com.google.android.gms.unstable");
-            activityManager.killBackgroundProcesses("com.google.android.configupdater");
-            activityManager.killBackgroundProcesses("com.google.android.onetimeinitializer");
-            activityManager.killBackgroundProcesses("com.google.android.packageinstaller");
-            activityManager.killBackgroundProcesses("com.google.android.inputmethod.latin");
-            activityManager.killBackgroundProcesses("com.android.chrome");*/
/////////////////////////// /////////////////////////// /////////////////////////// ///////////////////////////          
 
 
             PackageManager pm = mContext.getPackageManager();
 
-            /*ComponentName name = new ComponentName("","com.google.android.youtube.app.honeycomb.Shell$HomeActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-
-
-            name = new ComponentName("com.google.android.videos","com.google.android.youtube.videos.EntryPoint");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-
-
-            name = new ComponentName("com.android.vending","com.android.vending.AssetBrowserActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-
-            name = new ComponentName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-
-            name = new ComponentName("com.google.android.music","com.android.music.activitymanagement.TopLevelActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.android.chrome","com.google.android.apps.chrome.Main");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-
/////////////////////////// /////////////////////////// /////////////////////////// ///////////////////////////
-            name = new ComponentName("com.google.android.gms","com.google.android.gms.auth.setup.devicesignals.LockScreenService");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.google.android.gms","com.google.android.gms.chimera.PersistentBoundBrokerService");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.google.android.gms","com.google.android.gms.chimera.GmsIntentOperationService");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.google.android.gms","com.google.android.gms.chimera.PersistentDirectBootAwareApiService");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
-            ///
-
-            name = new ComponentName("com.aispeech.aios.wechat","com.aispeech.aios.wechat.ui.WxMainActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-
-            name = new ComponentName("com.autonavi.amapauto","com.autonavi.auto.remote.fill.UsbFillActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.speech.speechaios","com.speech.speechaios.MainActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("anzhi.pad","anzhi.pad.ui.SplashActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.sohu.inputmethod.sogou","com.sohu.inputmethod.sogou.SogouIMELauncher");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("com.aispeech.aios","com.aispeech.aios.MainActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);
-            name = new ComponentName("cn.kuwo.kwmusiccar","cn.kuwo.kwmusiccar.WelcomeActivity");
-            pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,PackageManager.DONT_KILL_APP);*/
-
-
             /////////////////////////// /////////////////////////// /////////////////////////// ///////////////////////////
            // pm.setApplicationEnabledSetting("com.google.android.onetimeinitializer", 3, 0);
             pm.setApplicationEnabledSetting("com.google.android.configupdater", 3, 0);
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章