一:源代碼下載:
1:Installing Repo
# mkdir ~/bin
# PATH=~/bin:$PATH
# curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo # chmod a+x ~/bin/repo有可能出現如下錯誤
amp-server@ampserver:~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:04:00 --:--:-- 0curl: (7) Failed to connect to 2404:6800:4005:c00::88: Network is unreachable
下面爲兩種解決辦法,任何一種都可以
1. # curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo
2. 打開 gedit /etc/hosts添加如下內容:
74.125.237.1 dl-ssl.google.com
1:生成public key
#ssh-keygen -t rsa
#cd ~/.ssh
#cat id_rsa.pub
2.下載code
repo init -u ssh://[email protected]/jellybean/platform/manifest.git -b jb-mr1-amlogic
repo init -m openlinux_tablet_jb-mr1-amlogic_20130630.xml
repo sync
二:調試記錄
1:android本身的機制,調節volume時不會去控制聲卡上的寄存器,而是通過軟件算法將volume調大或者調小。聲卡控制的音頻輸出有好幾路,每一路都有vol和gain控制着音量大小。
#cat /sys/class/sound/card0/device/RT5631/codec_reg →察看寄存器值
# tinymix 15 20 → Speaker Playback Volume設置爲20
# tinymix 18 20 → HP Playback Volume設置爲20
root@android:/# tinymix
Numberof controls: 82
ctl type num name value
0 ENUM 1 MIC1Mode Control Differential
1 INT 1 MIC1Boost 3
2 ENUM 1 MIC2Mode Control Differential
3 INT 1 MIC2Boost 3
4 ENUM 1 MONOINMode Control Differential
5 INT 2 MONOIN_RXCapture Volume 23 23
6 INT 2 AXICapture Volume 23 23
7 INT 2 PCMRecord Volume 255 255
8 BOOL 2 PCMRecord Switch On On
9 INT 2 PCMPlayback Volume 255 255
10 BOOL 2 PCMPlayback Switch On On
11 BOOL 1 AXO1Playback Switch On
12 BOOL 1 AXO2Playback Switch On
13 BOOL 2 OUTVOLChannel Switch On On
14 BOOL 2 SpeakerPlayback Switch On On
15 INT 2 SpeakerPlayback Volume 20 20
16 BOOL 1 MONOPlayback Switch Off
17 BOOL 2 HPPlayback Switch On On
18 INT 2 HPPlayback Volume 31 31
19 BOOL 1 DMICSwitch Off
20 BOOL 2 DMICCapture Switch Off Off
21 ENUM 1 SPKRatio Control 1.44x
22 BOOL 1 CallMode Switch Off
23 ENUM 1 HPRMux Right HPVOL
24 ENUM 1 HPLMux Left HPVOL
25 ENUM 1 MONOMux MONOMIX
26 ENUM 1 SPORMux SPORMIX
27 ENUM 1 SPOLMux SPOLMIX
28 BOOL 1 AXO2MIXMixer MIC1_BST1 Playback Switch Off
29 BOOL 1 AXO2MIXMixer MIC2_BST2 Playback Switch Off
30 BOOL 1 AXO2MIXMixer OUTVOLL Playback Switch Off
31 BOOL 1 AXO2MIXMixer OUTVOLR Playback Switch Off
32 BOOL 1 SPORMIXMixer SPKVOLL Playback Switch Off
33 BOOL 1 SPORMIXMixer SPKVOLR Playback Switch On
34 BOOL 1 MONOMIXMixer OUTVOLL Playback Switch Off
35 BOOL 1 MONOMIXMixer OUTVOLR Playback Switch Off
36 BOOL 1 SPOLMIXMixer SPKVOLL Playback Switch On
37 BOOL 1 SPOLMIXMixer SPKVOLR Playback Switch Off
38 BOOL 1 AXO1MIXMixer MIC1_BST1 Playback Switch Off
39 BOOL 1 AXO1MIXMixer MIC2_BST2 Playback Switch Off
40 BOOL 1 AXO1MIXMixer OUTVOLL Playback Switch On
41 BOOL 1 AXO1MIXMixer OUTVOLR Playback Switch Off
42 ENUM 1 RightSPKVOL Mux SPKMIXR
43 ENUM 1 RightHPVOL Mux OUTMIXR
44 ENUM 1 RightOUTVOL Mux OUTMIXR
45 ENUM 1 LeftOUTVOL Mux OUTMIXL
46 ENUM 1 LeftHPVOL Mux OUTMIXL
47 ENUM 1 LeftSPKVOL Mux SPKMIXL
48 BOOL 1 SPKMIXRMixer OUTMIXR Playback Switch Off
49 BOOL 1 SPKMIXRMixer DACR Playback Switch On
50 BOOL 1 SPKMIXRMixer MIC2_P Playback Switch Off
51 BOOL 1 SPKMIXRMixer RECMIXR Playback Switch Off
52 BOOL 1 OUTMIXRMixer VDAC Playback Switch Off
53 BOOL 1 OUTMIXRMixer AXIRVOL Playback Switch Off
54 BOOL 1 OUTMIXRMixer AXILVOL Playback Switch Off
55 BOOL 1 OUTMIXRMixer MONOIN_RXN Playback Switch Off
56 BOOL 1 OUTMIXRMixer MIC2_BST2 Playback Switch Off
57 BOOL 1 OUTMIXRMixer MIC1_BST1 Playback Switch Off
58 BOOL 1 OUTMIXRMixer DACR Playback Switch On
59 BOOL 1 OUTMIXRMixer RECMIXR Playback Switch Off
60 BOOL 1 OUTMIXRMixer RECMIXL Playback Switch Off
61 BOOL 1 OUTMIXLMixer RECMIXL Playback Switch Off
62 BOOL 1 OUTMIXLMixer RECMIXR Playback Switch Off
63 BOOL 1 OUTMIXLMixer DACL Playback Switch On
64 BOOL 1 OUTMIXLMixer MIC1_BST1 Playback Switch Off
65 BOOL 1 OUTMIXLMixer MIC2_BST2 Playback Switch Off
66 BOOL 1 OUTMIXLMixer MONOIN_RXP Playback Switch Off
67 BOOL 1 OUTMIXLMixer AXILVOL Playback Switch Off
68 BOOL 1 OUTMIXLMixer AXIRVOL Playback Switch Off
69 BOOL 1 OUTMIXLMixer VDAC Playback Switch Off
70 BOOL 1 SPKMIXLMixer RECMIXL Playback Switch Off
71 BOOL 1 SPKMIXLMixer MIC1_P Playback Switch Off
72 BOOL 1 SPKMIXLMixer DACL Playback Switch On
73 BOOL 1 SPKMIXLMixer OUTMIXL Playback Switch Off
74 BOOL 1 RECMIXRMixer MONOIN_RX Capture Switch On
75 BOOL 1 RECMIXRMixer AXIRVOL Capture Switch Off
76 BOOL 1 RECMIXRMixer MIC2_BST2 Capture Switch On
77 BOOL 1 RECMIXRMixer OUTMIXR Capture Switch Off
78 BOOL 1 RECMIXLMixer OUTMIXL Capture Switch Off
79 BOOL 1 RECMIXLMixer MIC1_BST1 Capture Switch On
80 BOOL 1 RECMIXLMixer AXILVOL Capture Switch Off
81 BOOL 1 RECMIXLMixer MONOIN_RX Capture Switch On
B:調試kernel、root;進入uboot命令行
2:打開流量使用情況功能
diff--git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 75035d2..c877ba0 100755
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -420,6 +420,7 @@ public class Settings extends PreferenceActivity
} catch (RemoteException e) {
// ignored
}
+ target.remove(header);
} else if (id == R.id.account_settings) {
int headerIndex = i + 1;
i = insertAccountsHeaders(target, headerIndex);
3:打開3G Dongle
\device\amlogic\MID30801\overlay\frameworks\base\core\res\res\values\config.xml
<string-array translatable="false" name="networkAttributes">
<item>"wifi,1,1,1,-1,true"</item>
<item>"mobile,0,0,0,-1,true"</item>
<!--
\device\amlogic\MID30801\init.rc 把註釋去掉
#service ril-daemon /system/bin/rild -l /system/lib/libaml-ril.so
# class main
# socket rild stream 660 radio radio
# socket rild-debug stream 660 radio system
# user radio
# group radio cache inet misc audio sdcard_rw log
# disabled
#service pppd_gprs /system/bin/init-pppd.sh
# user root
# group radio net_admin cache inet misc
# disabled
# oneshot
#on property:hw.nophone=true
# stop ril-daemon
#on property:hw.nophone=false
# start ril-daemon
#on property:ril.startpppd=true
#start pppd_gprs
#on property:ril.startpppd=false
#stop ril-daemon
\device\amlogic\MID30801\system.prop
hw.nophone=false
hw.nodatausage=false
4:uboot單獨燒錄5:按power鍵,不顯示充電符號
將啓動參數
charging_or_not=if ac_online; then run prepare; run charging; else if getkey; then run prepare; bmp display ${poweron_offset}; run bootcmd; else run power_off; fi; fi
改爲
6:背光調節
# echo 100 > /sys/class/backlight/aml-bl/brightness
7:AXP202
查看寄存器0x30的值,打開權限
# echo 30 > /sys/devices/i2c-2/2-0034/axp20_reg
# cat /sys/devices/i2c-2/2-0034/axp20_reg
寄存器0x30寫入0x63將usb供電不限流
# echo 3063 > /sys/devices/i2c-2/2-0034/axp20_reg
8:生成uImage_usb_burning用於USB燒錄
# cd bootable/recovery/ && mm -B && cd -
# cp out/target/product/g24ref/system/bin/recovery out/target/product/g24ref/recovery/root/sbin/
# make otapackage -j24
# ./device/amlogic/g24ref/quick_build_kernel.sh recoveryimage meson6_g24_usb_burning_defconfig
執行後生成out/target/product/g24ref/recovery.img,改名爲uImage_usb_burning
9:開機logo修改
1)uboot啓動畫面
圖片要求:16bit BMP格式,直接改成下面文件就好
device/amlogic/g24ref/res_pack/poweron
device/amlogic/g24ref/res_pack/bootup
2)android啓動畫面
frameworks/base/core/res/assets/images/android-logo-mask.png
frameworks/base/core/res/assets/images/android-logo-shine.png
只要替換掉上面的圖標即可
如果圖片名字修改了,修改代碼
3)initlogo.rle的製作
用圖片工具編輯好想要的png之後,保存爲logo.png
# convert -depth 8 logo.png rgb:logo.raw
# (SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle <logo.raw >initlogo.rle
4)bootanimation.zip的製作
# zip -r -X -Z store ../bootanimation part*/*.png desc.txt
10:打開/system權限
用mount命令查看分區情況
shell@android:/ $ mount
rootfs / rootfs rw 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,size=413096k,nr_inodes=75476,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /proc/bus/usb usbfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,size=413096k,nr_inodes=75476,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,size=413096k,nr_inodes=75476,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,size=413096k,nr_inodes=75476,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
tmpfs /storage/external_storage tmpfs rw,relatime,size=413096k,nr_inodes=75476,mode=775,gid=1000 0 0
/dev/block/system /system ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/data /data ext4 rw,nosuid,nodev,noatime,nodiratime,user_xattr,acl,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/cache /cache ext4 rw,nosuid,nodev,noatime,nodiratime,user_xattr,acl,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
# mount -o remount /dev/block/system /system
11:分辨率修改
其中要修改的文件有如下6個文件:
uboot/customer/board/configs/m6_chinach_v1.h
uboot/customer/include/panel/CH7026.h
common/customer/include/panel/CH7026.h
common/customer/configs/meson6_g24_jbmr1_defconfig
device/amlogic/g24ref/set_display_mode.sh
common/customer/boards/board-m6g24.h
1)uboot/customer/board/configs/m6_chinach_v1.h
2)uboot/customer/include/panel/CH7026.h
3)common/customer/include/panel/CH7026.h
4) common/customer/configs/meson6_g24_jbmr1_defconfig
5) device/amlogic/g24ref/set_display_mode.sh
6) common/customer/boards/board-m6g24.h
12:關閉kernel打印信息
# echo 0 > /proc/sys/kernel/printk
13:ADC keypad
# cat /sys/class/saradc/saradc_ch4
14:編譯自己的bin文件到system
如果Androidmk文件不加入LOCAL_MODULE_TAGS := eng,編譯時報如下錯誤。想要讓編譯器默認把data_integrity_guard編譯到系統裏面,就必須在user_tags.mk加上如下提示的dig
build/core/base_rules.mk:79: *** Module name: dig
build/core/base_rules.mk:80: *** Makefile location: system/core/data_integrity_guard
build/core/base_rules.mk:81: *
build/core/base_rules.mk:82: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:83: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:84: *
build/core/base_rules.mk:85: * optional, debug, eng, tests, samples
build/core/base_rules.mk:86: *
build/core/base_rules.mk:87: * If the module is expected to be in all builds
build/core/base_rules.mk:88: * of a product, then it should use the
build/core/base_rules.mk:89: * "optional" tag:
build/core/base_rules.mk:90: *
build/core/base_rules.mk:91: * Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:92: * Android.mk for the affected module, and add
build/core/base_rules.mk:93: * the LOCAL_MODULE value for that component
build/core/base_rules.mk:94: * into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:95: * makefile(s) where it's necessary, if
build/core/base_rules.mk:96: * appropriate.
build/core/base_rules.mk:97: *
build/core/base_rules.mk:98: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:99: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:100: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:101: * build/target/product/core.mk
build/core/base_rules.mk:102: *
build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.
15:打開adb調試模式
# setprop sys.usb.config adb
16:android4.2.2+rtl8723bs
1) Wifi調試
wifi調試比較容易,根據realtek給的文檔就能夠輕鬆的調通,這裏就不詳細講解了。要強調一點的就是,如果編譯出來的ko文件很大,Makefile文件加上:
EXTRA_LDFLAGS += --strip-debug
2) BT調試
這裏我不得不想fuck TMD,怎麼形容amlogic都不過分,連UART驅動都做不好,搞出來異類。
realtek給出來的code一般都是比較通用,所以根據他們的文檔移植不會有太大的問題。因爲amlogic的問題,導致我用了3天才調通,他們家的UART沒有用到奇偶檢驗,所以BT無法正常使用,下面是有問題的波形。
hal層怎麼設置uart參數都沒任何反應,uart驅動修改如下:
從新編譯燒錄,量出波形,一切正常
17:recovery[SetLocale]
aml8726-mx平臺一般升級時會解析factory_update_param.aml文件
--wipe_cache
--wipe_data
--wipe_media
--locale=en_US 語言提示來設置爲英文
--locale=zh_CN 語言提示來設置爲中文
--update_package=/sdcard/update.zip
18:contrast、brightness、saturation調節
# echo 0 > /sys/class/video/contrast
# echo 25 > /sys/class/video/brightness
# echo 120 > /sys/class/video/saturation
19:默認輸入法
# vi frameworks/base/packages/SettingsProvider/res/values/defaults.xml
修改如下
- <string name="config_defaultIME">com.android.inputmethod.latin/.LatinIME</string>
+ <string name="config_defaultIME">com.android.inputmethod.pinyin/.PinyinIME</string>