1. 程式人生 > >修改Android映象檔案 ramdisk.img、system.img、userdata.img獲取root許可權

修改Android映象檔案 ramdisk.img、system.img、userdata.img獲取root許可權

        首先,介紹一下這三個檔案。

        ramdisk.img 是你make android原始碼後,生成的/out/target/product/generic/root目錄下經過打包壓縮而成的。

        system.img 是你make android原始碼後,生成的/out/target/product/generic/system目錄下經過打包壓縮而成的。

        userdata.img 是你make android原始碼後,生成的/out/target/product/generic/data目錄下經過打包壓縮而成的。

        android系統起來後,會把ramdisk.img掛載為rootfs(根檔案系統),system.img掛載到ramdisk.img的system檔案下, userdata.img

掛載到ramdisk.img的data目錄下。

        當建立好了開發環境後(eclipse+ADT+SDK),啟動eclipse中的虛擬裝置,其預設的Android映象檔案位於SDK 目錄system-images檔案下,當然有不同的等級,我的目錄如下:android-sdk-linux/system-images/android-15/armeabi-v7a/。其中除了3個.img檔案外,還有一個kernel-qemu,它是linux核心檔案,其他的檔案都沒有什麼作用。這個3個檔案都可以用你自己生成的檔案代替。

         下面開始解壓這三個檔案,在開始修改前,提醒一下,要備份你的檔案。

          首先從最難的ramdisk.img開始,你別看它和其他兩個的字尾是一樣,其實它跟它們不是同一樣的檔案格式,從後面的操作就可以看出。

解壓:

          1. 新建資料夾 :mkdir tmp tmp/ramdisk tmp/system tmp/userdata.

          2. 拷貝ramdisk.img到tmp,cd tmp

          3. mv ramdisk.img ramdisk.img.gz

          4. gunzip ramdisk.img.gz

          5. cd ramdisk

          6. cpio -i -F ../tmp/ramdisk.img

          這樣,ramdisk的檔案就都解壓到ramdisk裡面了。

修改:

          1. 開機用root登入系統,修改init.rc 檔案中的:

                       service console /system/bin/sh
                             class core
                              console
                              disabled
                              user shell
                              group log
               user shell 改為user root。

          2. 更改為可寫檔案,修改init.rc 檔案中的:

                        on fs
                           # mount mtd partitions
                           # Mount /system rw first to give the filesystem a chance to....
                           mount yaffs2 [email protected] /system
                           mount yaffs2 [email protected] /system ro remount
                           mount yaffs2 [email protected] /data nosuid nodev
                           mount yaffs2 [email protected] /cache nosuid nodev

                        on post-fs
                           # once everything is setup, no need to modify /
                           mount rootfs rootfs / ro remount
                   將只讀 ro 改為rw可讀寫。當然,這些有可能不在這個檔案裡,那肯定再xxx.rc 裡面,xxx.rc有很多可以改的,它們可以配置系統的服務。修改好了後,進行壓縮。

打包:

         方法一:

         1.用mkrootfs製作ramdisk.img,mkrootfs 是android生成的命令:out/host/linux-x86/bin/mkbootfs,可以將此命令拷貝到tmp目錄下,在tmp下執行:mkbootfs ramdisk | gzip ramdisk.img.

         方法二:

         在tmp/ramdisk執行:

         cpio -i -t -F ../ramdisk.img | cpio -o -H newc -O ./ramdisk_new.img

         gzip ramdisk_new.img
         mv ramdisk_new.img.gz ramdisk.img           

這樣新的img就製作成功了,可以用其代替原來的了。

         system.img 以及userdata.img,因為這兩個檔案是一樣的格式,所以一起說明。

解壓:

          它們都是yaffs2 格式的檔案,要解壓yaffs2檔案,需要用到uyaffs,這個網上有原始碼,我 csdn 資源上也有,要的可以去下載。執行:

          uyaffs2 system.img

          uyaffs2 userdata.img

就會生成對應的資料夾:system、uersdata.系統預裝的apk在system/app下,可以刪除不需要的apk。

打包:

          使用mkyaffs2image能對yaffs2檔案打包,android也會生成:out/host/linux-x86/bin/mkyaffs2image,用法如下:

                 mkyaffs2image tmp/system/ system.img

                 mkyaffs2image tmp/userdata userdata.img

生成img 後,就可以用它們替換原來的了。

相關推薦

修改Android映象檔案 ramdisk.imgsystem.imguserdata.img獲取root許可權

        首先,介紹一下這三個檔案。         ramdisk.img 是你make android原始碼後,生成的/out/target/product/generic/root目錄下經過打包壓縮而成的。         system.img 是你make a

Android 關於檔案及資料夾的建立 刪除重新命名複製拷貝新增內容修改內容讀取內容

這幾天做了一個Android關於檔案及資料夾相關操作的軟體,自己就總結寫了一個關於檔案建立、遍歷、刪除、重新命名、複製拷貝、新增內容、修改內容、讀取內容的工具類,方便以後快速的對檔案進行一些簡單操作,使用時可直接複製到程式碼中作為一個工具類。 /** * author

android 映象檔案系統

Android啟動過程   Android在啟動的時候,會由UBOOT傳入一個init引數,這個init引數指定了開機的時候第一個執行的程式,預設就是init程式,這個程式在ramdisk.img中。可以分析一下它的程式碼,看看在其中到底做了一些什麼樣的初始化任務,它的原始

Android】—— DDMS開發工具獲取ROOT許可權檢視手機檔案匯出資料庫檔案

在這之前首先手機要開啟ROOT許可權,可以藉助安卓刷機精靈等一鍵ROOT軟體 其次像魅族、小米等手機拿到ROOT以後不能執行su命令,所以無法給手機中的檔案授權,需要下載一個SuperSU許可權管理器 有了他們我們就可以開始下面的步驟了: 1.window->

基本型別包裝類SystemMath類Arrays類大資料運算

1 基本型別包裝類 Java中想對8種基本資料型別進行復雜操作很困難。 實際程式介面上使用者輸入的資料都是以字串型別進行儲存的。 程式開發中,需要把字串轉換成指定的基本資料型別。   1.1基本資料型別物件包裝類 定義:java將基本資料型別值封裝成了物件,提供更多的操作基本數值的功能。

正則表示式Pattern和Matcher類Math類Random類SystemBigDecimal類Date類SimpleDateFormat類Calendar類

1.正則表示式 即給定的一個用來描述符合一定規則的字串的單個字串,是一種規則; 正則表示式的組成規則: 規則字元在java.util.regex Pattern類中 A:字元 x 字元 x。舉例:‘a’表示字元a \ 反斜線字元。 \n 新行(換行)符 (’\u

JAVA 常用類:正則表示式Math類Random類SystemDate類和Calendar類+程式碼

一、知識點體系圖 二、程式碼演示及注意事項 (1)正則表示式的程式碼例項 public class Test4 { public static void main(String[] args) { // 需求:獲取下面這個字串中由三個字元

ubantu系統獲取root 許可權修改檔案內容的方法

獲取root 許可權 首先普及一個知識 就是ubantu 終端上輸入密碼是不現實的。不要把他看做出問題了 首次root,sudo passwd root 一 輸入賬戶密碼 二 輸入unix密碼(root密碼) 三 再次輸入unix 密碼(root

java陣列的四種拷貝方法的效能分析:forcloneSystem.arraycopyArrays.copyof

今天作者就Java陣列的拷貝方法進行效能比較,多有不足,請大家指正!!! 1.for方法,用迴圈依次實現陣列元素的拷貝。 2.clone方法,是Object類的方法,用來實現物件的複製操作。 3.System.arraycopyof方法,是System的靜態方法,是一個na

Android媒體檔案metadata是如何實現跟解碼器結合獲取

一般獲取媒體檔案的metadata元資料的方法大概為 1.MediaMetadataRetriever mr = new MediaMetadataRetriever(); 2.mr.setDataSource(file.getAbsolutePath()); 3.m

Linux ubuntu 修改了locale檔案後系統無法啟動進入系統修復模式變成無許可權操作locale檔案

Linux ubuntu 修改了locale檔案後系統無法啟動,進入系統修復模式(root)變成無許可權操作locale檔案 問題: 一開始由於uE的Ftp 連線至linux伺服器時,無法正常顯示中文的命名的檔案,是亂碼的,經網上查詢方法是可以修改系統的

android在apk中獲取root許可權,並執行命令(改變檔案權讀寫限)

File device = new File(PropertiesHelper.getValue(Constants.SERIAL_PORT_DEVICE_FILE)); if (!device.canRead() || !device.canWrite())

Java IO操作——System類對IO的支援(System.outSystem.errSystem.in)

學習目標  掌握System對IO的三種支援:     System.out     System.err     System.in 掌握System.out及System.err的區別 掌握輸入、

數組復制的五種方式(遍歷循環一一賦值System.arraycopy地址賦值克隆clone()Arrays.copyof())

.cn out ring class str ava nwr summer oid package com.Summer_0424.cn; import java.util.Arrays; import java.util.concurrent.CopyOnWr

android emulator 獲取 Root 許可權

參考:https://blog.csdn.net/luvsnow/article/details/79963025  在2018.4的博文,搜尋時排在前面,我嘗試了一下。 浪費將近1小時,下載,按步驟,等;些方法是如此之差。其實有更簡單的方法! 看我的文章:笨方法,原本簡單的方

Android獲取Root許可權方法

1、把ADB解壓後,隨便放在任一磁碟下,最好把目錄名改短點,不然DOS下進比較麻煩。5 U6 n) i, D2 w6 t3 b( C4 B3 z) w 2、把SU檔案解壓,放到卡上,最好是根目錄下2 v1 ]; G6 p# G" u- L 3、把V5 連線上電腦 ,電腦會

android apk獲取root許可權執行相應的操作 demo除錯

在apk中,有時候需要root許可權,例如通過apk更新系統庫等system的檔案等,避免升級韌體,或者在apk中需要直接訪問某些裝置等。下面是在apk中獲取root許可權的方法,前提是裝置已經root過了。 關鍵點在於下面這句,通過執行su產生一個具有roo

Android 獲取ROOT許可權原理解析

一、 概述 本文介紹了android中獲取root許可權的方法以及原理,讓大家對android玩家中常說的“越獄”有一個更深層次的認識。 二、 Root的介紹 1.       Root 的目的 可以讓我們擁有掌控手機系統的許可權,比如刪除一些system/app下面的無用軟體,更換開關機鈴聲和

通過修改rom包永久獲取root許可權和所有應用除錯功能ro.debuggable

準備工具:1. adb部分安卓機型獲取root許可權比較難,刷supersu卡刷包和各種刷機工具都不見效;作為一名移動安全工程師,經常需要對各種APK進行除錯,通常除錯APK需要滿足的條件是apk的配置檔案androidmanifest.xml中android:debugga

判斷手機是否ROOT 程式碼實現+ Android 作業系統 獲取Root許可權 原理解析

判斷手機是否具有ROOT限                                                    許多機友新購來的Android機器沒有破解過Root許可權,無法使用一些需要高許可權的軟體,以及進行一些高許可權的操作,其實破解手機Root