時鐘進入屏保頁面會大改率閃退;
處理方法:
- 延時啓動監聽器;
- 不要監聽;
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