项目要求:因为有中英文版本的系统,同时有中英文的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);