国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Android 14→15內置可執行程序:從“野路子”到“正規軍”的進化

jf_44130326 ? 來源:Linux1024 ? 2026-02-01 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、先看兩組代碼的直觀區別

Android 14方案(PRODUCT_COPY_FILES):

wKgZO2kancKAZFfeAACFH6I8aDg852.png

核心邏輯:直接把文件從源碼目錄拷貝到系統分區(如/system/bin),像復制粘貼一樣簡單。

Android 15方案(PRODUCT_PACKAGES):

wKgZO2kancKAR4viAACczlg43Vg869.png

核心邏輯:先通過Android.bp定義模塊(如canconfig是一個預構建可執行程序模塊),再把模塊名加入打包清單,由構建系統統一管理。

終端路徑:

wKgZO2kancKAc9fuAAAEWSDYanI290.png

二、為什么Android 15淘汰直接拷貝?

這不是功能刪減,而是Android系統安全、構建效率、硬件適配三重進化的必然結果:

1.安全升級:從放養強監管

?Android 14時代:直接拷貝文件,系統不會校驗這個程序能不能在設備上運行(比如x86程序拷貝到ARM設備),也不管程序有沒有危險權限(比如偷偷讀寫系統文件)。

?Android 15時代:強制要求模塊化聲明,構建系統會自動檢查:

?架構兼容性:程序必須是設備支持的架構(如RK3576arm64);

?權限合法性:通過SELinux上下文配置,限制程序能做什么(比如只允許訪問串口);

?依賴完整性:如果程序依賴其他庫(如libcan.so),必須明確聲明,否則編譯報錯。

2.構建系統進化:Soong取代傳統Make

Android 15全面擁抱Soong構建系統(用Android.bp替代Android.mk),它像智能管家

?傳統方式(PRODUCT_COPY_FILES:只管拷貝,不管程序是否能運行”“依賴是否完整,出問題全靠開發者人肉排查;

?模塊方式(PRODUCT_PACKAGES:通過cc_prebuilt_binary等規則,自動處理權限、依賴、架構問題,甚至能幫你發現程序是x86格式,設備是arm64”這種低級錯誤。

3.硬件適配:瑞芯微等芯片廠商的倒逼

以瑞芯微RK3576為例:

?芯片的ISP、串口、攝像頭等硬件,對驅動和工具的依賴管理要求更嚴格;

?直接拷貝的程序,可能因沒加載依賴庫”“權限不夠導致硬件功能失效;

?模塊化聲明能強制關聯驅動、庫、權限,確保硬件功能正常工作。

三、開發者必須注意的3個核心點

1.必須學會寫Android.bp(模塊聲明)

cansend為例,需在同級目錄創建Android.bp

cc_prebuilt_binary {

name: "cansend", //模塊名,必須和PRODUCT_PACKAGES里的名字一致

srcs: ["cansend"], //可執行程序的路徑

installable: true, //允許安裝到系統分區

file_contexts: "cansend_contexts", // SELinux上下文配置

target: {

android_arm64: { enabled: true }, //只編譯到arm64架構

},

}

?關鍵作用:告訴構建系統這個程序是誰、能裝在哪、該有什么權限

wKgZO2kancKABIyxAACuwutTSLY224.png

2.SELinux配置是必答題

Android 15SELinux嚴格攔截未授權操作,必須為程序配置上下文:

# cansend_contexts文件內容

/system/bin/cansend usystem_file:s0

?若程序要訪問串口(如/dev/ttyS8),還需額外添加SELinux策略(如allow cansend serial_device:chr_file write;),否則會報avc: denied錯誤。

3.動態庫依賴要明明白白

如果cansend依賴libcan.so,不能只拷貝cansend,還需:

1.cc_prebuilt_library_shared聲明libcan.so模塊;

2.cansendAndroid.bp中通過shared_libs關聯:

shared_libs: ["libcan"],

?否則設備運行時會報錯cannot load library: libcan.so

四、實戰建議:從Android 14遷移到15的步驟

1.整理可執行程序:把canconfigcandump等程序放到統一目錄(如device/rockchip/cantools)。

2.為每個程序寫Android.bp:按模塊規則聲明,配置架構、權限、SELinux

3.修改PRODUCT_PACKAGES:替換原來的文件路徑,改為模塊名。

4.編譯驗證

系統配置:

export LC_ALL=C

source javaenv.sh

source build/envsetup.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$JAVA_HOME/bin:$PATH

export PATH=$ANDROID_BUILD_TOP/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

lunch rk3576_u-ap4a-userdebug

一鍵編譯:

./build.sh -AUCKu -d rk3576-evb1-v10 -J 16

若報錯,優先檢查架構是否匹配SELinux策略是否缺失依賴是否聲明

結語:系統越嚴,開發越規范

Android 15對可執行程序的模塊化要求,本質是系統安全和開發效率的雙向奔赴

?對用戶:避免非法程序破壞系統;

?對開發者:減少運行時崩潰Debug成本。

跟上這個變化,你會發現:曾經的野路子雖然快,但正規軍的方式更穩、更可持續。

(覺得有用?歡迎轉發給需要適配Android 15的同行~)



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    4024

    瀏覽量

    133970
  • 程序
    +關注

    關注

    117

    文章

    3846

    瀏覽量

    85225
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73954
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    用于分析可執行程序和內存轉儲的命令行工具介紹

    Axf Tool 是桃芯科技一個用于分析可執行程序和內存轉儲的命令行工具。該工具已集成 ingWizard 的項目快捷菜單里。
    的頭像 發表于 11-03 17:00 ?2271次閱讀
    用于分析<b class='flag-5'>可執行程序</b>和內存轉儲的命令行工具介紹

    office 版本不同,到處可執行程序出錯

    本帖最后由 opticalchang 于 2025-12-29 12:41 編輯 編寫程序所用的office 是2016版, 可執行程序在安裝了office 2007版本的電腦上運行時,就會出錯。在office 版本沒法更新的情況下,怎么解決?
    發表于 12-29 10:32

    labview生成的可執行程序的反編譯

    壇子里有沒有哪位大神知道關于labview生成的可執行程序的反編譯問題,如何反編譯exe的應用程序
    發表于 07-17 14:19

    各位大大,vxworks能否直接調用可執行程序

    的腳本或方法,可以直接調用可執行程序。ps:我看網上的一些資料說python可以運行在vxworsk下,同時在linux下python可以直接調用可執行程序,只是不知道這套方法在vxworks下是否
    發表于 04-29 12:13

    what!!! 10分鐘做出Labview可執行程序!!!

    可執行程序!https://mp.weixin.qq.com/s?__biz=MzI3MDIzMDQwNQ==&mid=100000411&idx=2&sn
    發表于 04-16 22:04

    在RV1126上怎樣去運行rknn_yolo_demo可執行程序

    怎樣生成rknn_yolo_demo可執行程序呢?在RV1126上怎樣去運行rknn_yolo_demo可執行程序呢?
    發表于 02-21 07:42

    怎樣移植qt可執行程序rk3399開發板上運行呢

    aarch64-linux-gnu-gcc是什么?怎樣移植qt可執行程序rk3399開發板上運行呢?
    發表于 03-07 07:37

    LabVIEW中VISA可執行程序不能在非開發機上運行

    LabVIEW中VISA可執行程序不能在非開發機上運行在自己的LabVIEW開發機上寫了一個可以工作的VISA VI,然后把它創建為可執行程序(.exe)用來發布。當我在目標機上運行該可執行程序連接
    發表于 05-19 21:12

    16KEY-B的可執行程序

    16KEY-B的可執行程序 /*******************************************************************/ /* */ /* 單片機開發
    發表于 11-22 18:02 ?14次下載

    Setup軟件安裝可執行程序工具免費下載

    本文檔的主要內容詳細介紹的是Setup軟件安裝可執行程序工具免費下載。 etup.exe是電腦的可執行進程文件,在正常情況下setup.exe表示為系統的安裝文件setup.exe,遇到系統文件
    發表于 11-13 08:00 ?11次下載

    國產數據庫游擊隊正規軍

    長期被國外同行遠遠拋在身后,近年來通過產學結合快速崛起,人大金倉成為了國產數據庫這一歷程的見證者和推動者。 游擊隊正規軍的轉變 眾所
    的頭像 發表于 11-24 10:28 ?1339次閱讀

    任正非:華為還不是“正規軍

    華為心聲社區發表了一封“任總與2020年金牌員工代表座談會上的講話”;任正非:華為還不是“正規軍”;任正非說,“你們最主要是將外部經驗帶入華為,對“游擊隊”進行整改,讓我們逐步轉為“正規軍”。” 圖
    的頭像 發表于 06-27 14:10 ?2961次閱讀
    任正非:華為還不是“<b class='flag-5'>正規軍</b>”

    在標準C語言中編譯出來的可執行程序

    在標準C語言中,編譯出來的可執行程序分為代碼區(text)、數據區(data)和未初始化數據區(bss)3個部分。如下代碼
    的頭像 發表于 06-16 09:01 ?2699次閱讀
    在標準C語言中編譯出來的<b class='flag-5'>可執行程序</b>

    如何嵌入第三方可執行程序

    你可能碰到過這種需求:需要在自己開發的應用程序中嵌入某個第三方的可執行程序,那么該如何實現呢?其實是很簡單的,借助Windows API,簡單幾步即可完成。
    的頭像 發表于 11-01 09:54 ?6999次閱讀

    labview生成可執行程序后vi都在同一路徑下嗎

    在LabVIEW中,當您生成可執行程序(exe文件)后,VI(虛擬儀器)并不直接以文件的形式存在于可執行文件的同一物理路徑下。實際上,LabVIEW的可執行文件構建過程涉及將多個VI和相關的資源
    的頭像 發表于 09-04 17:06 ?2072次閱讀