1. 程式人生 > >[android]寫一個system/bin 下的可執行檔案

[android]寫一個system/bin 下的可執行檔案

以hello 為例,檔案如下:

./hello/Android.mk
./hello/hello.cpp
./hello/MODULE_LICENSE_APACHE2
./hello/NOTICE

Android.mk 的內容:

# Copyright 2018 The Android Open Source Project
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= hello.cpp
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_MODULE:= hello
include $(BUILD_EXECUTABLE)

hello.cpp 的內容:

int main(int argc, char **argv)
{
    printf("hello world!\n");
    return 0;
}
將資料夾hello 放到 system/core 目錄下。

./cd 到 system/core/hello$

$mm

編譯成功如下顯示:

#### make completed successfully (03:41 (mm:ss)) ####


然後將可執行檔案push到手機/system/bin目錄下:

adb root
adb disable-verity 
adb reboot
adb root
adb remount
adb push hello /system/bin/
adb shell
cd  /system/bin/
Chmod 777 hello
./hello
其中adb disable-verity 不執行的話會報只讀檔案系統Read-only file system問題。

結束

相關推薦

[android]一個system/bin 執行檔案

以hello 為例,檔案如下:./hello/Android.mk./hello/hello.cpp./hello/MODULE_LICENSE_APACHE2./hello/NOTICEAndroid.mk 的內容:# Copyright 2018 The Android

一個Android專案裡面有兩個執行檔案,如何實現呼叫方式

我的處理方式是: 用Intent+AndroidManifest.xml的方法: 此方法是用Intent和修改AndroidManifest.xml達成的。 就是在要引用的AndroidManifest.xml檔案裡面加入被引用那個專案的activity: <activity

Linux執行檔案格式詳解

Linux下面,目標檔案、共享物件檔案、可執行檔案都是使用ELF檔案格式來儲存的。程式經過編譯之後會輸出目標檔案,然後經過連結可以產生可執行檔案或者共享物件檔案。Linux下面使用的ELF檔案和Windows作業系統使用的PE檔案都是從Unix系統的COFF檔案格式演化來的

Golang 在windows編譯Linux執行檔案

Golang 支援交叉編譯,在一個平臺上生成另一個平臺的可執行程式,最近使用了一下,非常好用,這裡備忘一下。 Windows 下編譯Linux 64位可執行程式 SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go

一個C原始檔到執行檔案 [反彙編-函式棧幀 編譯 連結]

[3] Program Headers Program Headers用來描述Segment的資訊。Segment由多個Section組成。一般是將具有共同屬性如.data和.bss匯聚為一個Segement加入到記憶體。個人理解目標檔案以Section的形式存在,可執行檔案以Segement的形式存在以方

在Windows獲取控制檯(DOS)執行檔案的標準輸入輸出

我們在開發軟體時,常常會用到控制檯下的程式,比如make,link,ftp等等。除此之外,還有一些開源的軟體都是在控制檯下使用的,這樣,如果我們想方便的在Windows程式中直接呼叫這些程序和他們進行互動,那麼就需要獲取它們的標準輸入輸出。 在Windows下獲取這種輸出

Linux安裝pyinstaller用於將py檔案打包生成一個執行檔案

(2)cd pyinstaller-2.1 執行 python setup.py install 4. 拷貝py檔案 將需打包的py檔案如test.py 拷貝到當前目錄 5. 生成可執行檔案 cd到pyinstaller目錄, 執行  python pyinstaller.py test.py可能遇到的問題1

ROS多個執行檔案一個launch檔案教程

問題: 最近執行SLAM建圖和避障的工作,遇到需要開啟很多終端,然後輸入很多指令的問題,感覺比較麻煩! 解決方案: 寫一個launch檔案把這些指令包含進去(具體原理我還不太清楚,是訊息釋出什麼相關的,我先嚐試實現一下功能吧) 先用例子試一下(海龜跟隨例程!)

在windowandroid-ndk編譯android執行程式的方法。

環境,win7,與android-ndk-r13b-windows-x86_64,把android-ndk-r13b-windows-x86_64解壓在目當中就可,不用安裝 1,只用gcc工具 D:\android-ndk\android-ndk-r13b\toolcha

c編寫,交叉編譯成android二進位制執行檔案

題目: 請編寫一個netbd.c,實現 檢查android手機/system/app/cmd.apk檔案是否存在。 然後交叉編譯這個檔案,生成android下二進位制可執行檔案. 答: ====== 題目: 答:  待實現.誰會? ====== 題目: 請編寫 linu

linux環境使用pyinstaller分步打包python程式(使用spec檔案將python程式打包成一個執行檔案)

先貼上pyinstaler的官網指南,很多使用方法可以直接查到: pyinstaller的安裝: 在自己的環境下執行: pip install Pyinstaller 有什麼錯誤就根據錯誤提示去查,這個容易解決~ pyinstaller的初步使用:

eclipse中配置tomcat執行正常,tomcat中bin目錄執行,頁面報404如何解決

解決方法:首先,暫停掉server中執行的tomcat,並且移除tomcat中的專案。刪除eclipse中的tomcat重新配置,再單獨跑tomcat;如果還出現此類問題,那麼關掉正在執行的tomcat,雙擊tomcat,出現頁面:如圖紅線所指位置,既選中Server Loc

編譯Android執行命令的FFmpeg

開啟你養家餬口的Android Studio,嫻熟的新建一個專案; 編寫一個 native 函式,如果只是測試我們在MainActivity裡面搞就行了: public native int ffmpegRun(String[] cmd); 新建jni目錄,在目錄下新建檔案: jx_ffmpeg_cm

經驗總結---編譯出可以在Android執行執行檔案

作為一手包攬Ubuntu和Android裝置的初級開發者,我不止一次地嘗試把這兩個同是用Linux核心的作業系統統一起來——讓Ubuntu下的可執行程式能夠在Android裝置上執行。於是我不止一次地嘗試,不止一次地查詢資料,終於如願以償。 我把我的經驗在這裡與大家分享。 準備工具 【宿

軟體素材---linux C語言:linux獲取執行檔案的絕對路徑--getcwd函式

      //標頭檔案:#include <unistd.h>     //定義函式:char * getcwd(char * buf, size_t size);    

用vue一個仿app拉重新整理的元件

如果你用vue弄移動端的頁面,那麼下拉重新整理還是比較常見的場景,下面來研究如何寫一個下拉重新整理的元件(先上圖); 由於節省大家的時間,樣式就不貼出來了。 html結構也不必介紹了,直接看程式碼吧-.- <transition> &

(zt)如何執行一個資源中的執行程式

2010年07月08日 15:29:00 zaijzhgh 閱讀數:511 標籤: exe null

一個exe執行檔案的生與死(執行原理)(轉載)

這篇文章講一個EXE檔案從載入執行到結束的整個流程,感覺寫的不錯, 記錄並共享下。下面列的只是程式執行時的大概流程,詳見附件。1、Shell(Explorer.exe)呼叫CreateProcess函式啟用exe程式 2、系統建立一個程序核心物件,引用計數置為1 3、系統為程序建立一個

Linux檢視執行檔案、動態庫的ELF頭等資訊

      用法: readelf <option(s)> elf-file(s)       作用: 和Windows下的PE檔案類似,ELF檔案是linux系統下可執行檔案、動態庫檔案、靜態庫檔案的標準格式。有時候我們需要檢視ELF檔案的頭資訊,或者動態庫檔

JAVA程式在eclipse執行但不能在cmd命令執行的原因

原文在這裡 對我自己而言,是這個原因: (1)把目錄切換到這裡         E:\JavaCodeCYH22\Proj\src (2)執行     java  com/cyh/Main   就可以了 簡單說就是:“目錄”裡面不要加入包,而在java執行時才加入包