liecen_android系統修改(1)

時鐘進入屏保頁面會大改率閃退;
處理方法:

  1. 延時啓動監聽器;
  2. 不要監聽;
package com.android.deskclock;

 public class ScreensaverActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

       //--start--liecen  Modify -W960TO-91(283.0)--When you enter the screen saver mode, you will exit quickly.
        mContentView.setOnSystemUiVisibilityChangeListener(new InteractionListener());
        //--start--liecen  Modify

    }

    @Override
    public void onStart() {
         super.onStart();

    }

    @Override
    public void onResume() {
        super.onResume();
        //頁面前端可見
    }
/*
*/
 @Override
    public void onUserInteraction() {
        // 用戶與屏幕交互是退出屏保;
        finish();
    }
.
.
.
 private final class InteractionListener implements View.OnSystemUiVisibilityChangeListener {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
                         //當用戶與屏幕交互時,導航欄再次出現。 
            if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
                // We want the screen saver to exit upon user interaction.
                finish();
            }
        }
    }
}
//--start--liecen  Modify -W960TO-91(283.0)--When you enter the screen saver mode, you will exit quickly.
        //mContentView.setOnSystemUiVisibilityChangeListener(new InteractionListener());
        //--start--liecen  Modify
        .
    }

    @Override
    public void onStart() {
         super.onStart();
        .
    }

    @Override
    public void onResume() {
        super.onResume();
        //頁面前端可見
    }

 @Override
    public void onUserInteraction() {
        // 用戶與屏幕交互是退出屏保;
        finish();
    }

 private final class InteractionListener implements View.OnSystemUiVisibilityChangeListener {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
                         //當用戶與屏幕交互時,導航欄再次出現。 
            if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
                // We want the screen saver to exit upon user interaction.
                finish();
            }
        }
    }
}

自動開啓藍牙 WiFi:

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<resources>

    <!--M:liecen @20180504 set bluetooth is on,wifi is on. {@-->
    <bool name="def_bluetooth_on">true</bool>
    <bool name="def_wifi_display_on">true</bool>
    <!--@} -->
  <integer name="def_screen_off_timeout">60000</integer>

  <integer name="def_screen_off_timeout">60000</integer>

    <bool name="def_airplane_mode_on">false</bool>
    <!-- Comma-separated list of bluetooth, wifi, and cell. -->
    <string name="def_airplane_mode_radios" translatable="false">cell,bluetooth,wifi,nfc,wimax</string>
    <string name="airplane_mode_toggleable_radios" translatable="false">bluetooth,wifi,nfc</string>
    <bool name="def_auto_time">true</bool>
    <bool name="def_auto_time_zone">true</bool>
    <bool name="def_accelerometer_rotation">true</bool>
    <!-- Default screen brightness, from 0 to 255.  102 is 40%. -->
    <integer name="def_screen_brightness">102</integer>
    <bool name="def_screen_brightness_automatic_mode">false</bool>
    <fraction name="def_window_animation_scale">100%</fraction>
    <fraction name="def_window_transition_scale">100%</fraction>
    <bool name="def_haptic_feedback">true</bool>
    <bool name="def_install_market_apps">true</bool>
    <bool name="def_install_non_market_apps">false</bool>
    <bool name="def_package_verifier_enable">true</bool> 
    <integer name="def_wifi_sleep_policy">2</integer>

</resources>

開啓觸摸和觸摸座標:

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/ DatabaseHelper.java —2190行

private void loadSystemSettings(SQLiteDatabase db) {
            //
             loadSetting(stmt, Settings.System.SHOW_TOUCHES, 1); loadSetting(stmt, Settings.System.POINTER_LOCATION, 1);}

桌面圖標固定

packages/apps/Launcher3/res/xml-sw600dp default_workspace.xml


修改震動馬達降低1/3;

frameworks/base/core/res/res/values/config.xml

a/base/core/res/res/values/config.xml
b/base/core/res/res/values/config.xml
— a/base/core/res/res/values/config.xml
+++ b/base/core/res/res/values/config.xml

@@ -780,34 +780,34 @@
     <!-- Vibrator pattern for feedback about a long screen/key press -->
     <integer-array name="config_longPressVibePattern">
         <item>0</item>
-        <item>15</item>
         <item>10</item>
-        <item>41</item>
+        <item>10</item>
+        <item>27</item>
     </integer-array>

     <!-- Vibrator pattern for feedback about touching a virtual key -->
     <integer-array name="config_virtualKeyVibePattern">
         <item>0</item>
-        <item>20</item>
+        <item>13</item>
         <item>10</item>
-        <item>40</item>
+        <item>26</item>
     </integer-array>

     <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
     <integer-array name="config_keyboardTapVibePattern">
-        <item>40</item>
+        <item>26</item>
     </integer-array>

     <!-- Vibrator pattern for feedback when selecting an hour/minute tick of a Clock -->
     <integer-array name="config_clockTickVibePattern">
         <item>125</item>
-        <item>30</item>
+        <item>20</item>
     </integer-array>

     <!-- Vibrator pattern for feedback when selecting a day/month/year date of a Calendar -->
     <integer-array name="config_calendarDateVibePattern">
         <item>125</item>
-        <item>30</item>
+        <item>20</item>
     </integer-array>

     <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
@@ -815,33 +815,33 @@
         <item>0</item>
         <item>1</item>
         <item>20</item>
-        <item>21</item>
+        <item>14</item>
     </integer-array>

     <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
     <integer-array name="config_safeModeEnabledVibePattern">
         <item>0</item>
+        <item>7</item>
         <item>10</item>
-        <item>10</item>
-        <item>21</item>
+        <item>14</item>
         <item>500</item>
-        <item>600</item>
+        <item>400</item>
     </integer-array>

     <!-- Vibrator pattern for feedback about hitting a scroll barrier -->
     <integer-array name="config_scrollBarrierVibePattern">
         <item>0</item>
-        <item>25</item>
+        <item>17</item>
         <item>10</item>
-        <item>20</item>
+        <item>13</item>
     </integer-array>

     <!-- Vibrator pattern for feedback about a context click -->
     <integer-array name="config_contextClickVibePattern">
         <item>0</item>
-        <item>10</item>
+        <item>7</item>
         <item>20</item>
-        <item>41</item>
+        <item>27</item>
     </integer-array>

     <bool name="config_use_strict_phone_number_comparation">false</bool>

K960 5.1wifi版平板屏蔽通話和短信功能 和 谷歌包

<filter>
     <!-- 谷歌服務包 --> 
    <app-filter name="black-app">  
        <item>OOBE.apk</item>   
        <item>YouTube.apk</item>
        <item>Street.apk</item>
        <item>GoogleCalendarSyncAdapter.apk</item>
        <item>GoogleContactsSyncAdapter.apk</item>
        <item>PlusOne.apk</item>
        <item>PlayGames.apk</item>

    </app-filter>

    <app-filter name="black-app-priv"> 
       <!-- 屏蔽電話、信息、wifi版本平板 -->
        <item>Contacts</item>
        <item>ContactsProvider</item>
        <item>Mms</item>
        <item>Dialer</item>
        <item>Stk1</item>
        <item>AutoDialer</item>
        <item>BSPTelephonyDevTool</item>
        <item>Telecom</item>
        <!-- 谷歌服務包 -->  
        <item>SetupWizard.apk</item>
        <item>GmsCore.apk</item>
        <item>Phonesky.apk</item>
        <item>Velvet.apk</item>
        <item>GoogleBackupTransport.apk</item>
        <item>GoogleFeedback.apk</item>
        <item>GoogleLoginService.apk</item>
        <item>GoogleOneTimeInitializer.apk</item>
        <item>GooglePartnerSetup.apk</item>
        <item>GoogleServicesFramework.apk</item>

    </app-filter>

</filter>

6580_L1基線 總內存固定:

diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 2237a39..a0c551e 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -47,6 +47,7 @@ import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.storage.StorageManager;
@@ -86,6 +87,7 @@ import com.android.settings.deviceinfo.StorageMeasurement;
 import com.android.settings.Utils;
 import com.mediatek.settings.FeatureOption;
 import com.mediatek.settings.UtilsExt;
+//import com.android.settings.accessibility.CustomToggleFontSizePreferenceFragment;

 import java.util.ArrayList;
 import java.util.Comparator;
@@ -391,6 +393,15 @@ public class ManageApplications extends Fragment implements
                     }
                 }
                 mFreeStorage += mApplicationsState.sumCacheSizes();
+                // liecen Setting the internal storage size @{
+                String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+                if(!customSize.equals("null")){
+                    long customSizeF = (long) (Float.parseFloat(customSize)*1024*1024*1024);
+                    long usedStorage = mTotalStorage - mFreeStorage;
+                    mFreeStorage = customSizeF - usedStorage;
+                    mTotalStorage = customSizeF;
+                }
+                // @}
             }

             applyCurrentStorage();
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
index cee4b6c..05a4d93 100644
--- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
@@ -35,6 +35,7 @@ import android.os.Handler;
 import android.os.Message;
 import android.os.RemoteException;
 import android.os.UserManager;
+import android.os.SystemProperties;
 import android.os.storage.StorageManager;
 import android.os.storage.StorageVolume;
 import android.preference.Preference;
@@ -339,6 +340,14 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory {
     }

     public void updateApproximate(long totalSize, long availSize) {
+       //liecen Setting the internal storage size @{
+        String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+        if(null == mVolume & !customSize.equals("null")){
+ 

設置應用固定內部存儲大小

mtk6737N

~/data/src/y960_mt6753_66_n/packages/apps/Settings$ git status ./;git diff ./
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)
modified: src/com/android/settings/applications/ManageApplications.java
modified: src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
modified: src/com/android/settings/deviceinfo/StorageSettings.java
modified: src/com/android/settings/deviceinfo/StorageVolumePreference.java
no changes added to commit (use “git add” and/or “git commit -a”)
diff –git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java

--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -57,6 +57,7 @@ import com.android.settings.R;
 import com.android.settings.Settings.StorageUseActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.accessibility.CustomToggleFontSizePreferenceFragment;
 import com.android.settings.applications.ManageApplications;
 import com.android.settings.deviceinfo.StorageSettings.MountTask;
 import com.android.settingslib.deviceinfo.StorageMeasurement;
@@ -244,6 +245,10 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
        if(file.toString().contains("data"))
        {
                totalBytes =(long)(totalBytes * Float.parseFloat(expandNum));
+               // liecen @{
+               String customTotalBytes = SystemProperties.get("ro.jlink.data.custom_total", "-1");
+               if(!customTotalBytes.equals("-1")) totalBytes = (long) (Float.parseFloat(customTotalBytes)*1024*1024*1024);
+               // @}
                usedBytes  =(long)(usedBytes *Float.parseFloat(expandNum));
        }

diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index bf4c2da..d414d08 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -42,6 +42,7 @@ import android.text.format.Formatter;
 import android.text.format.Formatter.BytesResult;
 import android.util.Log;
 import android.widget.Toast;
+
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -195,6 +196,10 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
                    {
                        dataPrivateUsedBytes =(long) ((path.getTotalSpace() - path.getFreeSpace())*Float.parseFloat(expandNum));
                        dataPrivateTotalBytes =(long) (path.getTotalSpace()*Float.parseFloat(expandNum));
+                       // liecen @{
+                       String customTotalBytes = SystemProperties.get("ro.jlink.data.custom_total", "-1");
+                       if(!customTotalBytes.equals("-1")) dataPrivateTotalBytes = (long) (Float.parseFloat(customTotalBytes)*1024*1024*1024);
+                       // @}
                        Log.d(TAG,"jlink type= private   StorageSettings path ="+path+"  dataPrivateTotalBytes ="+Formatter.formatFileSize(context, dataPrivateTotalBytes)+"  dataPrivateUsed    Bytes"+Forma
                    }
                    else{
@@ -545,6 +550,10 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
                {
                 privateUsedBytes += (path.getTotalSpace() - path.getFreeSpace())*Float.parseFloat(expandNum);
                 privateTotalBytes += path.getTotalSpace()*Float.parseFloat(expandNum);
+                // liecen @{
+                String customTotalBytes = SystemProperties.get("ro.jlink.data.custom_total", "-1");
+                if(!customTotalBytes.equals("-1")) privateTotalBytes = (long) (Float.parseFloat(customTotalBytes)*1024*1024*1024);
+                // @}
                }
                else
                {
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreference.java b/src/com/android/settings/deviceinfo/StorageVolumePreference.java
index 5a5355f..2ed58eb 100644
--- a/src/com/android/settings/deviceinfo/StorageVolumePreference.java
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreference.java
@@ -76,6 +76,10 @@ public class StorageVolumePreference extends Preference {
                 final String expandNum = SystemProperties.get("ro.jlink.data.expandNum","1.0");
                 totalBytes =(long)(totalBytes *Float.parseFloat(expandNum));
                 usedBytes =(long)(usedBytes *Float.parseFloat(expandNum));
+                // liecen @{
+                String customTotalBytes = SystemProperties.get("ro.jlink.data.custom_total", "-1");
+                if(!customTotalBytes.equals("-1"))totalBytes = (long) (Float.parseFloat(customTotalBytes)*1024*1024*1024);
+                // @}
             }

             final String used = Formatter.formatFileSize(context, usedBytes);
mtk6582
packages/apps/Settings
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
index 53681cf..6c85013 100755
--- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
@@ -335,9 +335,16 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory {
     }

     public void updateApproximate(long totalSize, long availSize) {
+        //liecen 修改內部存儲總容量爲固定值 @{
+        String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+        if(null == mVolume & !customSize.equals("null")){
+            long customSizeF = (long) (Float.parseFloat(customSize)*1024*1024*1024);
+            availSize = customSizeF - (totalSize - availSize);
+            totalSize = customSizeF;
+        }
+        // @}
         mItemTotal.setSummary(formatSize(totalSize));
         mItemAvailable.setSummary(formatSize(availSize));

         mTotalSize = totalSize;

         final long usedSize = totalSize - availSize;
@@ -366,6 +373,16 @@ public class StorageVolumePreferenceCategory extends PreferenceCategory {
         // Count caches as available space, since system manages them
         mItemTotal.setSummary(formatSize(details.totalSize));
         mItemAvailable.setSummary(formatSize(details.availSize));
+        //liecen 修改內部存儲總容量爲固定值 @{
+        String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+        if(null == mVolume & !customSize.equals("null")){
+            long customSizeF = (long) (Float.parseFloat(customSize)*1024*1024*1024);
+            long availSize = customSizeF - (details.totalSize - details.availSize);
+            long totalSize = customSizeF;
+               mItemTotal.setSummary(formatSize(totalSize));
+               mItemAvailable.setSummary(formatSize(availSize));
+        }
+        // @}

         mUsageBarPreference.clear();

diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index b0f4020..6d5fab3 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -18,7 +18,6 @@ package com.android.settings.applications;

 import static android.net.NetworkPolicyManager.POLICY_NONE;
 import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
-
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.AlertDialog;
@@ -43,6 +42,7 @@ import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.storage.IMountService;
 import android.os.storage.StorageManager;
@@ -380,6 +380,15 @@ public class ManageApplications extends Fragment implements
                     }
                 }
                 mFreeStorage += mApplicationsState.sumCacheSizes();
+                // liecen 修改內部存儲總容量爲固定值 @{
+                String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+                if(!customSize.equals("null")){
+                       long customSizeF = (long) (Float.parseFloat(customSize)*1024*1024*1024);
+                       long usedStorage = mTotalStorage - mFreeStorage;
+                       mFreeStorage = customSizeF - usedStorage;
+                       mTotalStorage = customSizeF;
+                }
+                // @}
             }

文件管理器應用固定內部存儲大小

mtk6737N

liecen@liecen:~/data/src/y960_mt6753_66_n/vendor/mediatek/proprietary/packages/apps/FileManager$

modified:   src/com/mediatek/filemanager/FileInfoAdapter.java

--- a/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
+++ b/mediatek/proprietary/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
@@ -41,6 +41,7 @@ import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Color;
+import android.os.SystemProperties;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -326,6 +327,14 @@ public class FileInfoAdapter extends BaseAdapter {
                 LogUtils.d(TAG, "setSizeText, freeSpace = " + MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()) + ",totalSpace = "
                         + MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));

+                // liecen @{
+                String custom_dataSpace = SystemProperties.get("ro.jlink.data.custom_total", "-1");
+                if(!"-1".equals(custom_dataSpace) & "/storage/emulated/0".equals(fileInfo.getFileAbsolutePath())){
+                       final long usedSpaces = ((MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath())) - (MountPointManager.getInstance().getMountPointFreeSpace(fileInfo
+                       totalSpaces = FileUtils.sizeToString((long) (Float.parseFloat(custom_dataSpace)*1024*1024*1024));
+                       freeSpaceString = FileUtils.sizeToString(((long) (Float.parseFloat(custom_dataSpace)*1024*1024*1024)) - usedSpaces);
+                }
+                // @}
                 sb.append(mResources.getString(R.string.free_space)).append(" ");
                 sb.append(freeSpaceString).append(" \n");
                 sb.append(mResources.getString(R.string.total_space)).append(" ");

mtk6582

mediatek/packages/apps/FileManager

--- a/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java
+++ b/packages/apps/FileManager/src/com/mediatek/filemanager/FileInfoAdapter.java

import android.os.StatFs;
+import android.os.SystemProperties;

@@ -47,7 +47,7 @@ import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
-
+import android.os.SystemProperties;
 import com.mediatek.filemanager.service.FileManagerService;
 import com.mediatek.filemanager.utils.FileUtils;
 import com.mediatek.filemanager.utils.LogUtils;
@@ -319,13 +319,26 @@ public class FileInfoAdapter extends BaseAdapter {
         if (fileInfo.isDirectory()) {
             if (MountPointManager.getInstance().isMountPoint(fileInfo.getFileAbsolutePath())) {
                 StringBuilder sb = new StringBuilder();
+                long freeSpace = MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath());
                 String freeSpaceString = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()));
+                long totalSpace = MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath());
                 String totalSpaces = FileUtils.sizeToString(MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
                 LogUtils.d(TAG, "setSizeText, file name = " + fileInfo.getFileName()
                         + ",file path = " + fileInfo.getFileAbsolutePath());
                 LogUtils.d(TAG, "setSizeText, freeSpace = " + MountPointManager.getInstance().getMountPointFreeSpace(fileInfo.getFileAbsolutePath()) + ",totalSpace = "
                         + MountPointManager.getInstance().getMountPointTotalSpace(fileInfo.getFileAbsolutePath()));
-
+                // liecen @{
+                String customSize = SystemProperties.get("ro.jlink.data.custom_total", "null");
+                if("/storage/emulated/0".equals(fileInfo.getFileAbsolutePath()) & !"null".equals(customSize)){
+                    long customSizeF = (long) (Float.parseFloat(customSize)*1024*1024*1024);
+                    long availSize = customSizeF - (totalSpace - freeSpace);
+                    long totalSize = customSizeF;
+                    freeSpace = availSize;
+                    freeSpaceString = FileUtils.sizeToString(freeSpace);
+                    totalSpace = totalSize;
+                    totalSpaces = FileUtils.sizeToString(totalSpace);
+                }
+                // @}
                 sb.append(mResources.getString(R.string.free_space)).append(" ");
                 sb.append(freeSpaceString).append(" \n");
                 sb.append(mResources.getString(R.string.total_space)).append(" ");

Android 6.0上新的機制,系統語言默認會先從SIM卡里讀取,通過卡的里語言來匹配。

如果不想讓系統語言隨卡里的語言匹配,可以將frameworks\base\core\res\res\values\Config.xml下的config_use_sim_language_file配置爲false即可。

還有一種是通過網絡來改變系統語言,如果也不想使用此功能,可以將frameworks/opt/telephony/src/java/com/android/internal/telephony/MccTable.java裏updateMccMncConfiguration方法中的setWifiCountryCodeFromMcc調用方案註釋掉即可。

修改如下:

+++ b/src/java/com/android/internal/telephony/MccTable.java
@@ -190,7 +190,7 @@ public final class MccTable {
                 setTimezoneFromMccIfNeeded(context, mcc);
             }
             if (fromServiceState) {
-                setWifiCountryCodeFromMcc(context, mcc);
+                //setWifiCountryCodeFromMcc(context, mcc);
             } else {
                 // from SIM
                 try {
@@ -215,7 +215,7 @@ public final class MccTable {
         } else {
             if (fromServiceState) {
                 // an empty mccmnc means no signal - tell wifi we don't know
-                setWifiCountryCodeFromMcc(context, 0);
+                //setWifiCountryCodeFromMcc(context, 0);
             }
         }

修改APN配置

overrides/mediatek/frameworks/base/telephony/etc/apns-conf.xml

...
  <apn carrier="unim2m.njm2mapn"
      mcc="460"
      mnc="06"
      apn="unim2m.njm2mapn"
      port="8080"
      type="default"
  />
...

APK放入system內,並且加入so庫;

overrides/mediatek/packages/apps/haoxuexi
同目錄下創建 lib文件夾 + haoxuexi.apk +Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE := haoxuexi
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/priv-app
${warning $(TARGET_OUT)==================liecen mkdir===================================}
$(shell mkdir -p $(TARGET_OUT)/lib/)
$(shell cp -r $(LOCAL_PATH)/lib/* $(TARGET_OUT)/lib/)
include $(BUILD_PREBUILT)

build/target/product/core.mk文件也需要加入包名


apk使用系統簽名:

簽名:
使用android自帶的簽名工具signapk.jar 以及源碼中的platform.x509.pem,platform.pk8 對apk進行重新簽名。

   執行:java -jar signapk.jar  platform.x509.pem platform.pk8 old.apk new.apk 執行後new.apk即爲簽名後的文件。

   (注:執行命令時所有文件這裏放在同一目錄下,如果不在同一目錄請修改路徑)。

  文件platform.x509.pem和platform.pk8我們可以在源碼的 build/target/product/security中找到。signapk.jar 可以編譯build/tools/signapk/ 得到。

5.簽名後就可以安裝使用了

另外這樣簽名後可能會導致不能操作sdcard目錄下的文件。

安兔兔和魯大師作假

7.0 代碼 /frameworks/base/core/java/android/widget/TextView.java;

 private void setText(CharSequence text, BufferType type,
                         boolean notifyBefore, int oldlen) {
        if (text == null) {
            text = "";
        } else {
            // liecen add
            text = match(text);

            // liecen add end
        }

        // If suggestions are not enabled, remove the suggestion spans from the text
        if (!isSuggestionsEnabled()) {
            text = removeSuggestionSpans(text);
        }
    // Matching CharSequence
    private CharSequence match(CharSequence text) {
        // "com.antutu.ABenchMark"
        //mCurrName
        String CORE_CN = "核";
        String CORE_EN="core";
        CharSequence textChar = null;
        mCurrName=mContext.getPackageName();//大概這樣寫,得到包名;
        String text3;
        String cpucore_old = android.os.SystemProperties.get("ro.jlink.cpu_core","8");
        String cpucore_new = android.os.SystemProperties.get("ro.jlink.cpu_core","10");
        String  text2  = text3 = String.valueOf(text);
        if(text2.contains("1280")&&text2.contains("800")){
            Log.i(LOG_TAG, "TextView.getText() = ["+text2+"]");
        }
        for (Map.Entry<String, String> map : mMap.entrySet()) {
            if (null != map.getKey()) {
                android.util.Log.d("liecen","相等--得到包名: = "+mContext.getPackageName()+" ,values = "+map.getValue());
                if (map.getKey().equals(text2)) {
                    text2 = map.getValue();
                    //android.util.Log.d("
                    if(mCurrName.contains(ANTUTU_APP) || mCurrName.contains(LUDASHI) || mCurrName.contains(CPU_Z) /*mCurrName.contains(app_name)*/) {
                        android.util.Log.d("liecen","相等—_作假app—mCurrName  = "+mCurrName+ " , text = "+text);
                        if(text.equals(cpucore_old)){
                            android.util.Log.d("liecen","相等-等於舊核數 = "+text);
                            android.util.Log.d("liecen","相等-新核數 = "+cpucore_new);
                            return textChar = cpucore_new;
                        }else if ((text.toString().contains(CORE_CN) || text.toString().contains(CORE_EN)) && text.toString().contains(cpucore_old) ){ 
                            android.util.Log.d("liecen","相等-包含舊核數 = "+text);
                            String rmSpace = text.toString().replaceAll("\\s*", "");//removeSpace(text.toString(),' ' );
                        //  android.util.Log.d("liecen_log","rmSpace.length() = "+rmSpace.length()
                        //      +"CORE_CN.length() = "+CORE_CN.length()
                        //      +"CORE_EN.length() = "+CORE_EN.length()
                        //      +"+cpucore_old.length() = "+cpucore_old.length());
                            if(rmSpace.length() == CORE_CN.length()+cpucore_old.length() || rmSpace.length() == CORE_EN.length()+cpucore_old.length()){
                                    android.util.Log.d("liecen","相等-包含舊核數時判斷了長度 = "+text);
                                    return text = text2;

                            }
                        } else {
                            if(text.toString().contains("10.8")){
                                android.util.Log.d("liecen","相等-10.8 = "+text);
                                return text2;
                            }
                            return text ;
                        }
                    }else {
                        if (text.equals(cpucore_old)) {
                        //  android.util.Log.d("liecen_log","cpucore_old 1 = "+cpucore_old);
                            return textChar = cpucore_old ;
                        }
                    }
                //  android.util.Log.d("liecen_log","retrun 1 = "+ text);
                    return text;
                }else if(text2.contains(map.getKey())) {
                    text2 = map.getValue();
                    android.util.Log.d("laixian","包含--得到包名: = "+mContext.getPackageName()+" ,text2的值: "+text2);
                    if(mCurrName.contains(ANTUTU_APP) || mCurrName.contains(LUDASHI) || mCurrName.contains(CPU_Z) ) { // if in antutu 
                        android.util.Log.d("liecen","包含—_作假app—mCurrName  = "+mCurrName+ " , text2 = "+text2);
                        //android.util.Log.d("liecen_log","getPackageName 2 = "+mContext.getPackageName());
                        if(text.equals(cpucore_old)){ // if equals 4 ,return 10
                            android.util.Log.d("liecen","包含-等於舊核數 = "+text);
                            android.util.Log.d("liecen-","包含-新核數 = "+cpucore_new);
                        //  android.util.Log.d("liecen_log","cpucore_new 2 = "+cpucore_new);
                            return textChar = cpucore_new ;
                        }else if(text3.contains(cpucore_old)) { //if contains 4 ,no handle
                            android.util.Log.d("liecen","包含-包含舊核數 = "+text3);
                            // android.util.Log.d("liecen_log","text2 1111 = "+text2);
                            if(text3.contains("ARMv7")){
                            android.util.Log.d("liecen","包含-包含了ARM = "+text3);
                                return text2;
                            }
                            if(text3.contains("10.8")){
                            android.util.Log.d("liecen","包含-包含了10.8 = "+text3);
                                return text2;
                            }
                            return text;
                        }else {  // if is not 4, hanlde antutu other display
                            return text = text2 ;
                        }
                    }else {// (text.equals(cpucore_old)) { // if not in antutu
                        if (text.equals(cpucore_old) || text3.contains(cpucore_old)) { //if equals or contains 4 , Do not do anything
                        //  android.util.Log.d("liecen_log","cpucore_old 2 = "+cpucore_old);
                            return text;
                        }else { // If it has nothing to do with 4 ,Return the content to be processed
                            //android.util.Log.d("liecen_log","text2  2222 = "+text2);
                            return text = text2;
                        }

                    }
                    //return text = text2;
                }
            }
           // Log.d("liecen_text", "text2 : "+text2+"\n map.getKey() = "+map.getKey());
        }
        return text;
    }

關閉指紋識別解鎖

Update Notes:
== [email protected] On 20180810T08:01:42 (xml) ==
關於com.sprd.applock.AppLockApplication has stoped問題,請按照如下修改:
vendor/sprd/platform/packages/apps/AppSecurity/ApplicationLock/src/com/sprd/launchapp/LaunchAppService.java:

} else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
String packageName = intent.getData().getSchemeSpecificPart();
FingerprintManager fingerprintManager = (FingerprintManager) mContext.getSystemService(
Context.FINGERPRINT_SERVICE);
+++ if(fingerprintManager == null)
+++ return;
final List items = fingerprintManager.getEnrolledFingerprints();
//reset the launch application function

項目是否不支持指紋功能,ApplicationLock主要功能是指紋啓動應用和應用鎖,若是客戶不支持指紋,建議將這個應用去掉:
去掉這個應用的方式爲刪掉device/sprd/pike2/common/security_feature.mk文件中的如下代碼:

enable Fingerprint feature

PRODUCT_PROPERTY_OVERRIDES += \
persist.support.fingerprint=true \
persist.sprd.fp.lockapp=true \
persist.sprd.fp.launchapp=true

for fingerprint lockapp\launchapp function

PRODUCT_PACKAGES += ApplicationLock
BOARD_SEPOLICY_DIRS += vendor/sprd/platform/packages/apps/AppSecurity/ApplicationLock/sepolicy

android 5.1設置默認launcher

diff --git a/base/services/core/java/com/android/server/am/ActivityManagerService.java b/base/services/core/java/com/android/server/am/ActivityManagerService.java
index f3c159a..624c6a0 100755
--- a/base/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -3449,6 +3449,7 @@ public final class ActivityManagerService extends ActivityManagerNative
          * mtk add
          * set default launcher
          */
+       /*
         final PackageManager mPm = mContext.getPackageManager();
         String packagesName="";
         String className="";
@@ -3492,14 +3493,39 @@ public final class ActivityManagerService extends ActivityManagerNative
                 mPm.replacePreferredActivity(mHomeFilter, IntentFilter.MATCH_CATEGORY_EMPTY,mHomeComponentSet,
                         DefaultLauncher);
             }
-        }
+        }*/
         /**
          * xiaming set default launcher end
          */

+        //網上加的代碼
         Intent intent = getHomeIntent();
         ActivityInfo aInfo =
-            resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);
+                resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);
+        if (aInfo != null) {
+            //add wwd start
+            PackageManager pm = mContext.getPackageManager();
+            Intent newintent = new Intent(Intent.ACTION_MAIN);
+            newintent.addCategory(Intent.CATEGORY_HOME);
+
+            List<ResolveInfo> resolveInfoList = pm.queryIntentActivities(newintent, 0);
+            //判斷帶有Intent.CATEGORY_HOME標籤的所有activity中如果有你指定的activity則替換
+            if (resolveInfoList != null) {
+                int size = resolveInfoList.size();
+                for (int i = 0; i < size; i++) {
+                    ResolveInfo rInfo = resolveInfoList.get(i);
+                    Log.v("laixianfu","類名:"+rInfo.activityInfo.name);
+                    if (rInfo.activityInfo.name.equals("mxb.educationnet.P00c")) {
+                        aInfo = rInfo.activityInfo;
+                    }
+                }
+            }
+        }
+            //
+
+        /*Intent intent = getHomeIntent();
+        ActivityInfo aInfo =
+            resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);*/
         if (aInfo != null) {
             intent.setComponent(new ComponentName(
                     aInfo.applicationInfo.packageName, aInfo.name));

PWS 臺灣警:

n/vendor/mediatek/proprietary/packages/apps/CMASReceiver

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