⑴ Android內核修改*_defconfig的方法
目的是為Android中的linux內核來配置CONFIG_DYNAMIC_FTRACE選項。
智能硬體Android版本:8.1
智能拆譽硬體Linux版本:4.4
智能硬體晶元平台:Arm32
實驗PC環境:Ubuntu
查看KERNEL_DEFCONFIG的定義,由於只支持arm32我們只更改arm文件夾下即可。
如果是arm64位晶元,需同時更該arm和arm64文件夾下的內容。
由此非eng編譯雹沖環境下配置源御殲文件應為kernel-4.4/arch/arm/configs/*_defconfig
註:產品代號已經用 * 替代,該處請自行根據需要去替換編譯產品名稱
kernel-4.4/arch/arm/configs/*_defconfig為上述所說的配置文件
發現依賴如下兩個depends的配置項
由此在kernel-4.4/arch/arm/configs/*_defconfig文件中新增如下兩個依賴的配置項
由此發現FUNCTION_TRACER的一個配置項
HAVE_DYNAMIC_FTRACE的配置項定義沒有依賴項
最終把改配置項添加到kernel的配置文件kernel-4.4/arch/arm/configs/*_defconfig中
提取出終端kernel配置文件
查看config文件是否包含CONFIG_DYNAMIC_FTRACE=y,大功告成
⑵ 安卓到底是不是Linux
安卓是基於Linux內核的系統,但不是Linux本身。具體來說:
內核層面:Android 使用的是 Linux 內核,這意味著 Android 繼承了 Linux 內核的許多特性,如設備驅動、文件系統、進程管理、網路通信等核心組件。這使得 Android 能夠運行在廣泛的硬體平台上,並受益於 Linux 內核的開源屬性和穩定性。
應用執行平台:Android 在 Linux 內核之上運行著一個名為 Android Runtime 的虛擬機,這是 Android 應用程序執行的平台。與 Linux 發行版中的 Java 虛擬機類似,ART 使得開發者能夠使用 Java 語言編寫 Android 應用程序。這些應用能夠在運行於 ART 之上的 Android 系統中運行,與 Linux 發行版中的應用程序存在區別。
特定庫和環境配置:盡管 Android 和 Linux 在內核層面有緊密聯系,但二者在特定的庫和環境配置上存在差異。例如,Android 特有的庫和環境設置使得一些 Linux 桌面應用無法在 Android 系統中直接運行,反之亦然。
兼容性問題:Android 與 Linux 發行版之間的兼容性問題需要注意。通常情況下,Android 的庫與 Linux 桌面環境之間存在不兼容性,這需要通過特定的技術手段來實現跨平台運行。
綜上所述,Android 系統和 Linux 在本質上是緊密相連的,但二者在應用執行平台、特定庫和環境配置以及兼容性方面存在一些區別。