1,SDK路徑:C:\Program Files (x86)\Android\android-sdk
2,exit 退出shell環境
3,make後system.img位置 :Z:\myandroid\out\target\product\evk_6sl_eink\system.img
4,查找 grep "adb _active" -r 遞歸查找字符串
//系統原來的settings
adb push Z:\Settings.apk system/priv-app/
//系統簽名 說明 javaapk.com_lockScreen_sliding.apk:要簽名的apk名字 lockScreen.apk:簽名後生成的apk的名字
1,複製Z:\myandroid\device\fsl\common\security下的platform.pk8和platform.x509.pem到某個文件夾下名稱假如M文件夾
2,複製你要簽名的apk到M文件夾下
3,自帶的簽名工具signapk.jar:由......\android_project\out/host\linux-x86\framework/中找到,複製放到M文件夾下
4,執行命令 java -jar signapk.jar platform.x509.pem platform.pk8 javaapk.com_lockScreen_sliding.apk lockScreen.apk
5,lockScreen.apk就是簽名後的apk,可以安裝到設備上了
6,adb push F:\eclipse導出的apk\META-INF\lockScreen.apk system/priv-app/
7,logcat -s lockScreen
//刪除系統app
1,adb remount
2.adb root
3.adb shell
4.rm -rf system\priv-app\lock.apk
賬號登陸
1,devel
2,user:test
3, pass:test123456
編譯及push
1, 在myandroid 下執行 . ./build/envsetup
2, lunch 選擇17
3, 進入 package/apps/Setting/
4, mm (改變資源文件用mm -B)編譯
5,adb root
6, adb remount
7,adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\priv-app\Settings.apk system/priv-app/
<------------------------------------------------------framework---改完重啓----adb reboot-------------------------------------------------------------->
-----------------------------systemUI------------------------
修改狀態欄背景,時鐘數字顏色
1,systemUI 位置:Z:\myandroid\frameworks\base\packages\SystemUI
2,adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\priv-app\SystemUI.apk system/priv-app/(windows下)
adb push out/target/product/evk_6sl_eink/system/priv-app/SystemUI.apk system/priv-app/(linux下)
-------------------------通知欄USB的廣播---------------------------------------
位置:Z:\myandroid\frameworks\base\core\res\res\values-zh-rCN
1,在Z:\myandroid\frameworks\base\core\res\下編譯生成framework-res.apk
2,adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\framework-res.apk /system/framework/
-----------------------------啓動app的theme-----Z:\myandroid\frameworks\base\core\res\res\values\themes-------------------
1,位置:Z:\myandroid\frameworks\base\core\res\res\values\themes
2,adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\framework-res.apk /system/framework/
-----------------------------啓動app的theme-----Z:\myandroid\frameworks\base\core\res\res\values\themes-------------------
1, adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\framework.jar /system/framework/
3, adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\framework2.jar /system/framework/
4, adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\ext.jar /system/framework/
-----------------------------關機背景-----Z:\myandroid\frameworks\base\services\java\com\android\server\ShoutDownActivity-------------------
關機的線程,Z:\myandroid\frameworks\base\services\java\com\android\server\power\ShutdownThread.java
關機的activity Z:\myandroid\frameworks\base\services\java\com\android\server\ShoutDownActivity
1, adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\services.jar /system/framework/
--------------------------------------------------(一)屏蔽通知欄下拉 ------------------------------------------------------------------------
在Z:\myandroid\frameworks\base\core\java\android\app\StatusBarManager.java
public static final int DISABLE_EXPAND = 0x00000001;
public static final int DISABLE_NOTIFICATION_ICONS = 0x00000002;
public static final int DISABLE_NOTIFICATION_ALERTS = 0x00000004;
public static final int DISABLE_NOTIFICATION_TICKER = 0x00000008;
public static final int DISABLE_NONE = 0x00000000;
將what換成以上5箇中的任意一個
public void disable(int what) {
try {
mService.disable(what(DISABLE_EXPAND , mToken, mContext.getPackageName());
} catch (RemoteException ex) {
// system process is dead anyway.
throw new RuntimeException(ex);
}
}
----------------------------------wifi對話框佈局------------:\myandroid\packages\apps\Settings\res\layout\wifi_dialog.xml-------------------
----------------------------------導航欄(back ,menu,home)------------:Z:\myandroid\frameworks\base\packages\SystemUI\res\layout\Navigation_bar.xml-------------------
----------------------------------輸入法------------:Z:\myandroid\packages\inputmethods\PinyinIME-------------------
1,Z:\myandroid\packages\inputmethods\PinyinIME\res\xml\skb_template1
color="@color/label_color" label_color :輸入法按鍵上顯示的字體顏色
Z:\myandroid\packages\inputmethods\PinyinIME\src\com\android\inputmethod\pinyin\XmlKeyboardLoader.java
1,鍵盤圖標有2套,一套 private static final String XMLATTR_KEY_ICON = "icon";
另一套 private static final String XMLATTR_KEY_ICON = "icon_popup";
2,改變按鍵的圖標
Z:\myandroid\packages\inputmethods\PinyinIME\res\xml\skb_template1 normal_key_bg
改這個圖片就可以了
但是“,”和"123"二個鍵是圖片用的 light_key_bg改變這個圖片就可以
3,屏蔽輸入法的冒泡
public void delayedShow(long delay, int locationInParent[]) {
/* if (mBalloonTimer.isPending()) {
mBalloonTimer.removeTimer();
}
if (delay <= 0) {
mParent.getLocationInWindow(mParentLocationInWindow);
showAtLocation(mParent, Gravity.LEFT | Gravity.TOP,
locationInParent[0], locationInParent[1]
+ mParentLocationInWindow[1]);
} else {
mBalloonTimer.startTimer(delay, BalloonTimer.ACTION_SHOW,
locationInParent, -1, -1);
}*/
}
Z:\myandroid\packages\inputmethods\PinyinIME\src\com\android\inputmethod\pinyin\BalloonHint.java
adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\app\PinyinIME.apk system/app/
adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\lib\libjni_pinyinime.so system/lib/
修改默認的輸入法爲拼音輸入法:
設置默認輸入法爲google拼音
\frameworks\base\packages\SettingsProvider\res\values\defaults.xml
<!-- wdh add -->
<string name="config_default_input_method" translatable="false">com.android.inputmethod.pinyin/.PinyinIME</string>
\frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
private void loadSecureSettings(SQLiteDatabase db)
//wdh add
loadStringSetting( stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
R.string.config_default_input_method );
adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\priv-app\SettingsProvider.apk /system/priv-app/
----------------------------------屏蔽home鍵-------------------
1,Z:\myandroid\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindow.java下的
// If we have released the home key, and didn't do anything else
// while it was pressed, then it is time to go home!
if (!down) {
cancelPreloadRecentApps();
mHomePressed = false;
if (mHomeConsumed) {
mHomeConsumed = false;
return -1;
}
if (canceled) {
Log.i(TAG, "Ignoring HOME; event canceled.");
return -1;
}
// If an incoming call is ringing, HOME is totally disabled.
// (The user is already on the InCallScreen at this point,
// and his ONLY options are to answer or reject the call.)
try {
ITelephony telephonyService = getTelephonyService();
if (telephonyService != null && telephonyService.isRinging()) {
Log.i(TAG, "Ignoring HOME; there's a ringing incoming call.");
return -1;
}
} catch (RemoteException ex) {
Log.w(TAG, "RemoteException from getPhoneInterface()", ex);
}
// Delay handling home if a double-tap is possible.
if (mDoubleTapOnHomeBehavior != DOUBLE_TAP_HOME_NOTHING) {
mHandler.removeCallbacks(mHomeDoubleTapTimeoutRunnable); // just in case
mHomeDoubleTapPending = true;
mHandler.postDelayed(mHomeDoubleTapTimeoutRunnable,
ViewConfiguration.getDoubleTapTimeout());
return -1;
}
// Go home! wdh add
// launchHomeFromHotKey();
return 0;
}
註釋掉原來的鎖屏app,return 0讓上層處理
---------------------------------------------------------------------------------系統"xxx已停止運行"的對話框樣式---------------------------------------------------------
1,代碼位置: AppErrorDialog AppErrorDialog extends BaseErrorDialog系統"xxx已停止運行"的對話框
---------------------------------------------------------------------------------屏蔽通知欄,下拉刷新---------------------------
1,文件位置Z:\myandroid\frameworks\base\packages\SystemUI\src\com\Android\systemui\statusbar\phone\PanelView.Java
1,首先屏蔽通知欄,
在 public void setExpandedHeightInternal(float h) {
h = 0;//這個是通知欄下拉的高度,設置爲0就不顯示,不影響下拉動作的監聽
if (Float.isNaN(h)) {
// If a NaN gets in here, it will freeze the Animators.
if (DEBUG_NAN) {
Log.v(TAG, "setExpandedHeightInternal: warning: h=NaN, using 0 instead",
new Throwable());
}
h = 0;
}
2, case MotionEvent.ACTION_UP:
Log.i("PanelView", "MotionEvent.ACTION_UP");//在up時添加自己要做的事
Intent intent = new Intent();
intent.setAction("RefreshView");
getContext().sendBroadcast(intent);
---------------------------------------------------------------------------------長按home鍵----------------------------
1,Z:\myandroid\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\framework\android.policy.jar system/framework/
----------------------------------------------------------------------------------去掉導航欄----------------------------
隱藏 導航欄 frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
boolean showNav = mWindowManagerService.hasNavigationBar();
添加 showNav = false;
----------------------------------------------------------------------------------去掉系統鎖屏----------------------------
Z:\myandroid\frameworks\base\packages\Keyguard\
private boolean mExternallyEnabled = true;(false去掉)
adb push Z:\myandroid\out\target\product\evk_6sl_eink\system\priv-app\Keyguard.apk system/priv-app/
-----------------------------------------------------------OTA升級測試----------------------------
1,代碼位置Z:\myandroid\packages\apps\fsl_imx_demo\FSLOta
2,adb install -r Z:\myandroid\out\target\product\evk_6sl_eink\system\app\FSLOta.apk system/app/
3,adb shell am start -n com.fsl.android.ota/com.fsl.android.ota.OtaAppActivity
----------------------------------------被動學習黑屏原因---------------可能是我framework那裏改的有問題--------