Ⅰ 怎麼刷安卓4.4.4原生系統
如果你的目標是刷寫安卓4.4.4原生系統,首先需要在linux環境下搭建好android開發所需的環境。這一步驟包括安裝必要的軟體和工具,比如Git、Java JDK等。安裝完成後,下載Android源代碼至你的本地目錄。
配置好環境後,進入lichee目錄,運行命令:./build.sh。之後,返回到android目錄,執行source build/envsetup.sh並選擇lunch命令,隨後根據你的設備和需求選擇合適的構建平台。
執行extract-bsp命令,以提取特定設備的硬體支持包。接著,輸入make pack生成所需的img文件。這一步驟會根據你的配置文件進行編譯和打包。最後,將生成的img文件燒寫到設備上,完成刷機過程。
另一種方法是尋找與你的設備型號相匹配的原生系統鏡像。這通常可以在開發者社區或設備製造商的官方網站上找到。下載後,按照鏡像文件的使用說明進行刷寫操作。
無論是哪種方式,刷寫原生系統都需要謹慎操作,確保正確選擇適合你設備的版本,並且了解刷寫過程中可能出現的風險。此外,建議在刷寫前備份重要的數據,以免造成數據丟失。
值得注意的是,刷寫過程可能會導致設備變磚,如果遇到問題,建議尋求專業人士的幫助。
Ⅱ deepin 自啟動程序和自啟動命令
參考鏈接:
配置文件管理:
Linux載入後, 它將初始化硬體和設備驅動, 然後運行第一個進程init。
init根據配置文件繼續引導過程,啟動其它進程。通常情況下,修改放置
目錄下的腳本文件,可以使init自動啟動其它程序。例如:編輯/etc/rc.local 文件(該文件通常是系統最後啟動的腳本),在文件最末加上一行「xinit」或「startx」,可以在開機啟動後直接進入X-Window。
最新版本deepin已經沒有/etc/rc、/etc/rc.d,而只有/erc/rc?.d
使用systemd執行rc.local
在使用了systemd作為啟動器的系統(如較新版的deepin)中,默認不包含rc.local文件。此時請在/etc目錄下以管理員許可權創建一個名為rc.local的純文本文件,並寫入如下內容:
保存後,賦予該文件可執行許可權:sudo chmod +x /etc/rc.local。下次重啟時,systemd就會自動執行rc.local裡面的命令了
在~/.config/autostart目錄下添加自啟動命令
以代理工具 XX-Net 為例,假定其啟動腳本位於~/Documents/XX-Net-3.3.1/start。在 ~/.config/autostart 目錄下添加 XX-Net.desktop 文件,其內容如下:
系統啟動時會執行Exec所指定的命令。
登錄時自動運行程序
用戶登錄時,bash先自動執行系統管理員建立的全局登錄腳本 :
/etc/profile
然後bash在用戶起始目錄下按順序查找三個特殊文件中的一個:
但只執行最先找到的一個。因此,只需根據實際需要在上述文件中加入命令就可以實現用戶登錄時自動運行某些程序。
退出登錄時自動運行程序
退出登錄時,bash自動執行個人的退出登錄腳本
例如,在/.bash_logout中加入命令「tar -cvzf c.source.tgz *.c」,則在每次退出登錄時自動執行 「tar」 命令備份 *.c 文件。
定期自動運行程序
Linux有一個稱為crond的守護程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內容,並在設定的時間執行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。
例如,建立文件crondFile,內容為「00 9 23 Jan HappyBirthday」,運行crontab cronFile後,每當元月23日上午9:00系統自動執行「HappyBirthday」的程序(「」表示不管當天是星期幾)。
定時自動運行程序一次
定時執行命令at 與crond 類似(但它只執行一次):命令在給定的時間執行,但不自動重復。at命令的一般格式為:
在指定的時間執行file文件中所給出的所有命令。也可直接從鍵盤輸入命令:
執行的內容為:2000-11-09 12:00時候自動發一標題為「Have a lunch」,內容為plan.txt文件內容的郵件給Roger。
Ⅲ 如何將android linux燒到Raspberry Pi及其調試
一.Raspberry Pi入門向導。
可以在以下地址下載Raspberry向導
2.構建android framework
命令如下:
cd <your_android_path>
source build/envsetup.sh
lunch
顯示lunch菜單如下:
You』re building on Linux
Lunch menu… pick a combo:
1. full-eng
2. full_x86-eng
3. simulator
4. full_rpi-eng
5. cyanogen_generic-eng
6. cyanogen_rpi-eng
選擇第6個菜單。
然後進行編譯
make -j8
等待編譯成功,這可能需要幾十分鍾。
編譯成功之後將」system」目錄復制到root目錄下,接下來我們可能會用到。
命令如下:
cd <your_android_path>
cp -r system out/target/proct/rpi/root
ps:編譯時如果jdk版本不對,可將其改成jdk1.6
五.如何在Raspberry Pi上跑android linux內核?
1.准備一張存儲空間2G以上的SD卡及相應讀卡器。
2.下載arch linux鏡像文件
用wget工具下載鏡像文件:
wget http://files.velocix.com/c1410/images/archlinuxarm/archlinux-hf-2012-09-18/archlinux-hf-2012-09-18.zip
解壓:
unzip archlinux-hf-2012-09-18.zip
成功之後,你會在當前目錄下發現一個鏡像文件。
3.燒linux鏡像文件。
sudo dd bs=4M if=archlinux-hf-2012-09-18.img of=/dev/sdb
sudo sync
ps:/dev/sdb是SD卡在主機上的設備文件。不同的電腦可能不同。
4.用android linux內核代替這個內核。
做完上述步驟之後,當你把SD卡插在電腦上,你會發現有兩個分區:一個是引導區,另一個是文件系統區。
用android linux內核代替引導區的kernel.img。
cp -uv <your_android_linux_path>/arch/arm/boot/zImage <your_sdcard_boot_partition>/kernel.img
5.用android linux文件系統代替這個linux文件系統
rm -rf <your_sdcard_file_system_partition>
cp -r <your_android_source_code_path>/out/target/proct/rpi/root/* <your_sdcard_file_system_partition>
6.配置內核命令行cmdline.txt
Edit the <your_sdcard_boot_partition>/cmdling.txt, and replace 「init=/…」 with 「init=/init」
7.做完這些之後就可以在Raspberry Pi上跑這個android linux內核。
六.如何為Android linux做一張可引導的SD卡
1.刪除已有分區,如果沒有就不用刪了。
Command(m for help):p
Disk /dev/sdb: 15.7 GB, 15707668480 bytes
64 heads, 32 sectors/track, 14980 cylinders, total 30668085 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0×00000000
sudo fdisk/dev/sdb
Command(m for help):d
Partition number(1-4):1
Command(m for help):d
Selected partition 2
Command (m for help): p
Disk /dev/sdb: 15.7 GB, 15707668480 bytes
64 heads, 32 sectors/track, 14980 cylinders, total 30679040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0×00000000
Device Boot Start End Blocks Id System
Command(m for help):w
ps:確定刪除之後,卸掉SD卡,然後再裝上。
以bytes問單位記下SD卡的大小。後面的步驟會用到。
然後進入」Expert mode」。
Command(m for help):x
將這個SD卡設置為255個磁面,63個扇區和磁柱數量(不同的SD/mmc卡有著不同的此柱數量)
Expert command (m for help): h
Number of heads (1-256, default 64): 255
Expert command (m for help): s
Number of sectors (1-63, default 32): 63
ps:在下一步開始前,先要計算磁柱數量,計算過程如下:
B:SD卡以bytes為單位的大小(前面已經記住了即:15707668480)
C:磁柱的數量
C=B/255/63/512
例如:我的SD卡大小是16G(15707668480)
C=15707668480/255/63/512=1909.68191721,約等於1909.
Expert command (m for help): c
Number of cylinders (1-1048576, default 14980): 1909
Expert command (m for help): r
2.新建分區
如果你的SD卡已經分區,請按照上述步驟刪除分區。接下來,我們將創建兩個分區,一個是引導區,用來存放內核鏡像等文件;另一個文件系統區存放android linux文件系統。
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-30679039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-30679039, default 30679039): +128M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
Command (m for help): a
Partition number (1-4): 1
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2):
Using default value 2
First sector (264192-30679039, default 264192):
Using default value 264192
Last sector, +sectors or +size{K,M,G} (264192-30679039, default 30679039):
Using default value 30679039
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
ok,分區成功,現在我們有兩個分區,接下我們對分區進行格式化。
3.格式化分區
對引導區進行格式化:
sudo mkfs.msdos -F 32 /dev/sdb1 -n BOOT
mkfs.msdos 3.0.12 (29 Oct 2011)
對文件系統區進行格式化:
sudo mkfs.ext3 /dev/sdb2 -L ROOTFS
mke2fs 1.42 (29-Nov-2011)
Filesystem label=ROOTFS
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
950976 inodes, 3801856 blocks
190092 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3896508416
117 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
4.設置引導區
引導區必須包含以下文件,你可以從官方鏡像里獲取(bootable/fat32 partition)也可以從書面步驟中復制過來:
bootcode.bin:第二階段的引導程序,
loader.bin:第三階段的引導程序,
start.elf:GPU二進制固件映像,
kernel.img操作系統的內核鏡像文件,
cmdline.txt:傳遞給內核的參數.
5.設置root文件系統分區
ROOTFS分區包含android文件系統,是從<your_android_framework_path>/out/target/proct/rpi/root復制過來的。
cp -r <your_android_framework_path>/out/target/proct/rpi/root/* /media/ROOTFS/
6.完成上述步驟之後,將其放在Raspberry Pi上跑。
七.如何在Raspberry Pi使用adb?
1.查看網路
當android linux在Raspberry Pi運行時,切換到控制台,執行以下命令:
ifconfig eth0
記下ip地址。
如果不能找到ip,可以輸入以下命令:/system/xbin/dhcp-eth0,來啟動網路連接程序。
ps:如果屏幕沒有顯示控制台,只要按CTRL+ALT+F2即可切換到控制台。如果你想要切換到Android界面,只要按CTRL+ALT+F7即可。
2.遠程連接adb伺服器
在主機上執行以下命令即可與同一區域網的Raspberry Pi相連
adb connect ip
連接成功後,你就可以用adb工具輸出日誌,執行shell命令等。
3.也可以用數據線連接主機,直接在主機上調試。
進入調試的命令為:
screen /dev/ttyUSB0 115200
名詞解釋:
交叉編譯(cross compile):交叉編譯呢,簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。這里需要注意的是所謂 平台,實際上包含兩個概念:體系結構(Architecture)、操作系統(Operating System)。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
Ⅳ android中如何編譯出64位so文件
如果是在Linux下編譯Android源碼,有可能是兩個原因:
1. lunch命令有32位和64位的區別,注意選能夠編譯64位so的命令
2. mk文件中有LOCAL_MODULE_PATH的值比如為$(TARGET_OUT_SHARED_LIBRARIES)/hw的改為LOCAL_MODULE_RELATIVE_PATH := hw,後一種可以分別在lib和lib64下分別生成32位和64位的so文件,這個看看編譯後的信息就知道了.