日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

一、先看兩組代碼的直觀區(qū)別

Android 14方案(PRODUCT_COPY_FILES):

wKgZO2kancKAZFfeAACFH6I8aDg852.png

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

Android 15方案(PRODUCT_PACKAGES):

wKgZO2kancKAR4viAACczlg43Vg869.png

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

終端路徑:

wKgZO2kancKAc9fuAAAEWSDYanI290.png

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

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

1.安全升級:從放養(yǎng)強監(jiān)管

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

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

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

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

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

2.構建系統(tǒng)進化:Soong取代傳統(tǒng)Make

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

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

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

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

以瑞芯微RK3576為例:

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

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

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

三、開發(fā)者必須注意的3個核心點

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

cansend為例,需在同級目錄創(chuàng)建Android.bp

cc_prebuilt_binary {

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

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

installable: true, //允許安裝到系統(tǒng)分區(qū)

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

target: {

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

},

}

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

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.動態(tài)庫依賴要明明白白

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

1.cc_prebuilt_library_shared聲明libcan.so模塊;

2.cansendAndroid.bp中通過shared_libs關聯(lián):

shared_libs: ["libcan"],

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

四、實戰(zhàn)建議:從Android 14遷移到15的步驟

1.整理可執(zhí)行程序:把canconfig、candump等程序放到統(tǒng)一目錄(如device/rockchip/cantools)。

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

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

4.編譯驗證

系統(tǒng)配置:

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

若報錯,優(yōu)先檢查架構是否匹配、SELinux策略是否缺失、依賴是否聲明

結語:系統(tǒng)越嚴,開發(fā)越規(guī)范

Android 15對可執(zhí)行程序的模塊化要求,本質是系統(tǒng)安全和開發(fā)效率的雙向奔赴

?對用戶:避免非法程序破壞系統(tǒng);

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

跟上這個變化,你會發(fā)現(xiàn):曾經的野路子雖然快,但正規(guī)軍的方式更穩(wěn)、更可持續(xù)。

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



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

    關注

    12

    文章

    4035

    瀏覽量

    134547
  • 程序
    +關注

    關注

    117

    文章

    3849

    瀏覽量

    85489
  • 代碼
    +關注

    關注

    30

    文章

    4977

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    office 版本不同,到處可執(zhí)行程序出錯

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

    labview生成的可執(zhí)行程序的反編譯

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

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

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

    what!!! 10分鐘做出Labview可執(zhí)行程序?。?!

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

    在RV1126上怎樣去運行rknn_yolo_demo可執(zhí)行程序

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

    怎樣移植qt可執(zhí)行程序rk3399開發(fā)板上運行呢

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

    LabVIEW中VISA可執(zhí)行程序不能在非開發(fā)機上運行

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

    16KEY-B的可執(zhí)行程序

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

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

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

    國產數(shù)據(jù)庫游擊隊正規(guī)軍

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

    任正非:華為還不是“正規(guī)軍

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

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

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

    如何嵌入第三方可執(zhí)行程序

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

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

    在LabVIEW中,當您生成可執(zhí)行程序(exe文件)后,VI(虛擬儀器)并不直接以文件的形式存在于可執(zhí)行文件的同一物理路徑下。實際上,LabVIEW的可執(zhí)行文件構建過程涉及將多個VI和相關的資源
    的頭像 發(fā)表于 09-04 17:06 ?2254次閱讀
    新乡市| 尖扎县| 漳浦县| 永德县| 沙河市| 丰台区| 平果县| 白沙| 南阳市| 石楼县| 舞钢市| 安岳县| 泊头市| 高碑店市| 仁布县| 安阳县| 监利县| 通河县| 瓦房店市| 博兴县| 遂川县| 屏边| 宜章县| 津南区| 民和| 时尚| 松阳县| 定结县| 文昌市| 博罗县| 霍城县| 南木林县| 固镇县| 华宁县| 错那县| 安丘市| 五家渠市| 抚宁县| 阿拉善左旗| 通渭县| 富宁县|