哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

3天內(nèi)不再提示

Android 14→15內(nèi)置可執(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是一個預構(gòu)建可執(zhí)行程序模塊),再把模塊名加入打包清單,由構(gòu)建系統(tǒng)統(tǒng)一管理。

終端路徑:

wKgZO2kancKAc9fuAAAEWSDYanI290.png

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

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

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

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

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

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

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

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

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

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

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

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

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

以瑞芯微RK3576為例:

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

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

?模塊化聲明能強制關(guān)聯(lián)驅(qū)動、庫、權(quá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架構(gòu)

},

}

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

wKgZO2kancKABIyxAACuwutTSLY224.png

2.SELinux配置是必答題

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

# cansend_contexts文件內(nèi)容

/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關(guān)聯(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.為每個程序?qū)?/span>Android.bp:按模塊規(guī)則聲明,配置架構(gòu)、權(quán)限、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)先檢查架構(gòu)是否匹配、SELinux策略是否缺失、依賴是否聲明。

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

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

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

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

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

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



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

    關(guān)注

    12

    文章

    4035

    瀏覽量

    134400
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3847

    瀏覽量

    85425
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4975

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

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

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

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

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

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

    的腳本或方法,可以直接調(diào)用可執(zhí)行程序。ps:我看網(wǎng)上的一些資料說python可以運行在vxworsk下,同時在linux下python可以直接調(diào)用可執(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í)行程序工具免費下載

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

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

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

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

    華為心聲社區(qū)發(fā)表了一封“任總與2020年金牌員工代表座談會上的講話”;任正非:華為還不是“正規(guī)軍”;任正非說,“你們最主要是將外部經(jīng)驗帶入華為,對“游擊隊”進行整改,讓我們逐步轉(zhuǎn)為“正規(guī)軍”?!?圖
    的頭像 發(fā)表于 06-27 14:10 ?3041次閱讀
    任正非:華為還不是“<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 ?2826次閱讀
    在標準C語言中編譯出來的<b class='flag-5'>可執(zhí)行程序</b>

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

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

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

    在LabVIEW中,當您生成可執(zhí)行程序(exe文件)后,VI(虛擬儀器)并不直接以文件的形式存在于可執(zhí)行文件的同一物理路徑下。實際上,LabVIEW的可執(zhí)行文件構(gòu)建過程涉及將多個VI和相關(guān)的資源
    的頭像 發(fā)表于 09-04 17:06 ?2196次閱讀
    九江县| 新沂市| 彰化市| 河北省| 会泽县| 栖霞市| 体育| 翁源县| 法库县| 皮山县| 胶州市| 遵化市| 淅川县| 股票| 漯河市| 奎屯市| 古田县| 冕宁县| 津南区| 东山县| 赤水市| 乌拉特中旗| 深水埗区| 大余县| 仪陇县| 永宁县| 乌审旗| 民县| 南川市| 静海县| 灌南县| 汝阳县| 宁明县| 班戈县| 合作市| 体育| 黎城县| 当涂县| 周宁县| 柘城县| 南雄市|