用過ubuntu,現(xiàn)在想換換LinuxMint試試看。下面是我安裝配置LinuxMint13的過程。
1、安裝
安裝LinuxMint13時,我嘗試了好多種方法,都失敗了。最后選用了硬盤安裝。硬盤安裝Linuxmint和安裝ubuntu一樣。
1.1、準備工作
1、從linux mint的官方網站http://www.linuxmint.com/ 下載linux mint 13。
2、下載grub4dos,http://www.linuxidc.com/Linux/2009-01/18027.htm 。
1.2、安裝步驟
1、將下載的linuxmint-13-mate-dvd-64bit.iso 拷貝到系統(tǒng)的C盤根目錄。
2、從linuxmint-13-mate-dvd-64bit.iso的casper文件夾中提取出vmlinuz、initrd.lz文件。也放到C盤根目錄下。
3、解壓grub4dos壓縮包,會得到一個名為grub4dos-0.4.4的文件夾,將以下文件拷貝到C盤(其中前兩個文件是必需的,后兩個文件網上有些資料說不需要,為了保險起見還是放上吧,反正也沒什么壞處~):
grldr menu.lst grldr.mbr grub.exe
4、修改menu.lst文件,在文件末尾添加以下內容
title Install Linux Mint
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/linuxmint-13-mate-dvd-64bit.iso locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
其中,title后面的內容隨便寫就是,kernel后面的那個突出顯示的就是Linux Mint的鏡像文件,需要與C盤中的文件名對應。
5、修改C盤根目錄下隱藏的boot.ini,打開文件后,在文件最后添加如下內容
c:\grldr=”Linux Mint Install”
以上工作完成后,重啟系統(tǒng)即可開始XP硬盤安裝Linux Mint的過程了!
不過我安裝花了好長的時候,時間主要是浪費在系統(tǒng)分區(qū)上了,每個分區(qū)的操作都要等上好久啊,蛋疼啊!
注意:在重啟后進入Linux Mint界面后就先卸載isodevices
umount -l /isodevices
這步很重要,未執(zhí)行這步,分區(qū)無法成功。
2、配置
安裝完成之后可以進行配置了,由于安裝是沒有鏈接到網絡,也就沒有下載更新包、語言包。現(xiàn)在首要的就是進行安裝語言包。
MINT 13默認的更新源是真心慢啊,所以第一步要先處理更新源的問題。
2.1、更新源
LinuxMint 的鏡像建立在中國科技大學的鏡像站上了,中國科技大學 LinuxMint:http://mirrors.ustc.edu.cn/linuxmint/ 這是唯一也是主鏡像。
下面就說一下具體步驟
1、登錄 Linux Mint,打開終端。
2、鍵入命令 sudo nano /etc/apt/sources.list,建議先備份下。
3、打開文本后應該是這個樣子
deb http://packages.linuxmint.com/ maya main upstream import
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ precise partner
deb http://packages.medibuntu.org/ precise free non-free
可以看出沒有中國服務器的影子
4、下面我們就來添加中國的源
添加以下文字
deb http://mirrors.ustc.edu.cn/linuxmint/ maya main upstream import universe multiverse
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
并且將原來的源全部注釋掉(就是封掉,不要用了)
deb http://packages.linuxmint.com/ maya main upstream import
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ precise partner
deb http://packages.medibuntu.org/ precise free non-free
注意就是在最前面多加了個#號即可
注:這里以 Linux Mint 13 maya 為例,其它舉一反三即可。其實就是改個鏈接而已。后
面的文字保持原樣即可。
5、更新 APT
在終端輸入命令 sudo apt-get update
等待執(zhí)行完成即可。這時你會發(fā)現(xiàn) Linux Mint 原來如此輕盈!
2.2、安裝輸入法
在這里我安裝的是FCITX
直接從軟件管理器中搜索fcitx,然后安裝。
安裝完成后到 控制中心 ---》Language Support 的鍵盤輸入方式系統(tǒng)中選擇fictx
重啟系統(tǒng)即可使用。
2.3、安裝QQ
1、到以下網址下載deb安裝包,http://www.longene.org/download/qq2011-for-wine_20120220.deb,已經打包好的deb包,大小為150M左右;
最新發(fā)布 6-1 號更新的 :http://www.longene.org/download/WineQQ2012-20120531-Longene.deb 有幾個bug 已經修補啦 !
2、打開終端輸入到目錄中運行命令安裝:
sudo dpkg -i *.deb
3、64位系統(tǒng)還需要運行以下命令:
sudo apt-get install ia32-libs
4、卸載的話運行以下命令:
dpkg -r qq-for-wine
2.4、安裝Google Chrome
1、chrome
到https://www.google.com/intl/en/chrome/browser/index.html 下載最新的安裝包。也可以通過下面的命令安裝
32位系統(tǒng):
wget -O google-chrome_i386.deb http://goo.gl/itppy
sudo dpkg -i google-chrome_i386.deb
64位系統(tǒng):
wget -O google-chrome_amd64.deb http://goo.gl/iXDWk
sudo dpkg -i google-chrome*.deb
2、chromium
sudo apt-get install chromium-browser
chromium flash 插件失效的修復方法:
查找flash插件
$ sudo locate libflashplayer.so
/usr/lib/adobe-flashplugin/libflashplayer.so
拷貝flash插件到chromium-browser插件目錄
$ sudo cp /usr/lib/adobe-flashplugin/libflashplayer.so /usr/lib/chromium-browser/plugins
2.5、安裝無線網卡
我的網卡是BCM4312,在網上找了好久,試過兩三種方法都不行。最后找到以下方法解決:
1、先到Broadcom的官方網站去仔細的看看說明具體鏈接地址如下:
http://www.broadcom.com/support/802.11/linux_sta.php
可以先查看自己的網卡的型號,下載對應的驅動。在終端下輸入:“lspci | grep Network" 確認網卡型號。
2、解壓縮
tar -xzf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
3、編譯
make
編譯時遇到下面的錯誤:
/home/lgq/hybrid_wl/src/wl/sys/wl_linux.c:388:2: 錯誤: 初始值設定項里有未知的字段‘ndo_set_multicast_list’
/home/lgq/hybrid_wl/src/wl/sys/wl_linux.c:388:2: 警告: 從不兼容的指針類型初始化 [默認啟用]
/home/lgq/hybrid_wl/src/wl/sys/wl_linux.c:388:2: 警告: (在‘wl_netdev_ops.ndo_validate_addr’的初始化附近) [默認啟用]
在google后發(fā)現(xiàn) ndo_set_multicast_list 被ndo_set_rx_mode替換(在以下網站提到http://www.mindwerks.net/2011/11/wireless-bcm4312-3-2-kernel/
再次編譯通過。
4、sudo make install
5、sudo depmod
6、sudo modprobe wl
Give Ubuntu a few seconds after loading the “wl” kernel module, then eventually the Network Manager will start looking for wireless networks.
參考鏈接:http://blog.csdn.net/cs090506/article/details/7300526
2.6、安裝詞典星際譯王
通過軟件管理器安裝星際譯王stardict。
詞典下載路徑:http://abloz.com/huzheng/stardict-dic/
2.7、編譯安裝最新的alsa驅動
剛安裝好的linux mint,插上耳機后,筆記本的內置音箱仍然還有聲音。
1、查看自己聲卡的codec型號。
終端輸入alsamixer,查看顯示的chip值。或者cat /proc/asound/card0/codec#0,查看顯示結果的首行。
2、到官方網站下載相應的驅動來安裝。
3、搭建Android源碼開發(fā)環(huán)境
在本節(jié)搭建的是Android4.0的源碼開發(fā)環(huán)境。
Linux Mint 13 中已經安裝了 GNU Make 3.81、Python 2.7.3、Git 1.7.9.5。
所以還需要安裝jdk6。
3.1、安裝jdk6
Linux Mint 13 中自帶有OpenJDK,但這個不是我想要的,我們要的是sun-java6。
1、在安裝sun的jdk前,先刪除OpenJDK,打開新立得,搜索OpenJDK,徹底刪除所有的包。
2、在sun的官網上http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html 下載最新的安裝文件(如:jdk-6u34-linux-x64.bin)。
增加執(zhí)行權限:sudo chmod u+x jdk-6u34-linux-x64.bin
將安裝文件拷貝到 /usr/lib/java/ 目錄下
執(zhí)行安裝命令 ./jdk-6u34-linux-x64.bin
成功安裝完JDK后,接下來我們將要進行JDK的配置,使用命 $ sudo gedit /etc/environment 對environment文件進行修改并添加以下代碼:
PATH="/usr/lib/java/jdk1.6.0_34/bin"
CLASSPATH="/usr/lib/java/jdk1.6.0_34/lib"
JAVA_HOME="/usr/lib/java/jdk1.6.0_34"
若PATH已存在,則用冒號作間隔,將jdk的bin目錄地址加上,這樣java的環(huán)境變量將配置成功了,但這樣默認使用的JDK可能還不是我們 剛才安裝的,因為ubuntu可能還會有默認的jdk,如openjdk;所以,為了使默認使用的是我們安裝的jdk,還需執(zhí)行如下命令:
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_34/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_34/bin/javac 300
$ sudo update-alternatives --config java
成功執(zhí)行命令后,我們安裝的JDK就是系統(tǒng)默認的了,執(zhí)行命令 $ java -version 就可以成功看到 JDK的相關信息了如:
java version "1.6.0_34"
Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)
3.2、安裝必需的軟件包
安裝編譯Android需要的工具包,這個步驟是關鍵,必須安裝,否則編譯會報莫名其妙的錯誤!!!!!!!!!!!!!!!!
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-multilib g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
3.3、配置USB
lgq-laptop bin # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 04f2:b008 Chicony Electronics Co., Ltd USB 2.0 Camera
Bus 006 Device 002: ID 1ea7:000b
Bus 002 Device 004: ID 05c6:9025 Qualcomm, Inc.
$sudo vim /etc/udev/rules.d/70-android.rules
增加下面內容
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9025",MODE="0666"
運行命令,重啟udev:
$sudo chmod a+rx /etc/udev/rules.d/70-android.rules
$sudo service udev restart
3.4、安裝svn
1、安裝subversion
apt-get install subversion
2、安裝rabbitvcs
sudo add-apt-repository ppa:rabbitvcs/ppa
sudo apt-get update
sudo apt-get install rabbitvcs-nautilus3
nautilus -q
nautilus
rabbitvcs的界面比較習慣,但是,很卡。
3、rapidsvn
sudo apt-get install rapidsvn
4、esvn
3.5、設置ccache
①安裝ccache
官網下載或apt安裝 sudo apt-get install ccache
②$ which ccache
查看安裝路徑, /usr/bin/ccache
③$ mkdir ~/.bin
④ $ cd ~/.bin/
$ ln -s /usr/bin/ccache gcc
$ ln -s /usr/bin/ccache g++
$ ln -s /usr/bin/ccache arm-linux-gcc
$ ln -s /usr/bin/ccache arm-linux-g++
⑤PATH設置,將~/.bin/放在 arm-linux-gcc等的PATH的前面。
原:PATH=/usr/local/arm-linux_pre4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
現(xiàn):PATH=/home/<user>/.bin:/usr/local/arm-linux_pre4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
gedit ~/.bashrc 添加 export PATH="/home/<user>/.bin:$PAHT" ,然后重啟即可
⑥$ which arm-linux-gcc
/home/<user>/.bin/arm-linux-gcc 確認
⑦$ ccache -M 30G
3.6、安裝最新的eclipse
eclipse搭建方法參考:http://www.cnblogs.com/tnxk/archive/2012/07/09/2583800.html
eclipse的更新速度相當慢,這里收集一個加快更新的方法。
解決辦法只能是更換到Mirror站點,具體步驟:
1.找個國內的站點-北方交通大學的不錯http://mirror.bjtu.edu.cn/eclipse
2.更換Eclipse更新服務器下載站點Windows -> Preferences -> Install/Update -> Available Software Sites
3.找到所有 The Eclipse 開始的行,注意是所有的,因為不同版本的Eclipse官方項目比如 Web Tools Project,也都需要更改為鏡像站點,否則將導致只有部分插件的站點得到更新,只能部分解決速度問題。
4.點擊“Edit”, 編輯Location部分,替換http://download.eclipse.org為http://mirror.bjtu.edu.cn/eclipse
參考鏈接:http://blog.csdn.net/chenxihua/article/details/6423168
4、問題及解決方法
4.1、重啟后出現(xiàn) waiting for network configuration 問題
如今在 ubuntu 12.04 環(huán)境下接著撥號時,如果使用 sudo pppoeconf 命令配置撥號,重啟電腦后就會先顯示 waiting for network configuration,然后是 waiting up to 60 more seconds for network configuration,最后顯示booting system without full network configuration.并且進入桌面后網絡連接狀態(tài)圖標也不見了。
問題原因:
使用 sudo pppoeconf 命令時,會有信息寫入/etc/network/interfaces 文件內,直接導致出現(xiàn)了上面的問題。
問題解決:
sudo gedit /etc/network/interfaces 打開文件后,將其中除
auto lo
iface lo inet loopback
外其他內容全部刪除后,重啟系統(tǒng)就可以了。
posted @
2013-02-19 17:06 小果子 閱讀(1772) |
評論 (0) |
編輯 收藏
一LauncherApplication->onCreate
1.//設置最小堆內存4M
2.//建立應用圖標緩存器
3.//建立LauncherModel
4.//注冊Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件監(jiān)聽器
LauncherModel作為廣播接收器對上面3中事件進行監(jiān)聽
5.//添加對桌面favorites content provider 數(shù)據變化監(jiān)聽器
二Launcher->onCreate
1.獲取LauncherApplication LauncherModel mIconCache等LauncherApplication初始化的對象
2.新建拖放控制器new DragController(this)
4.//獲取桌面組件管理器,啟動桌面組件host
5.//從array.hotseats中加載所有的hotseats(熱鍵 如掛機按鈕,google瀏覽器)
6.從launcher.preferences加載本地設置
7.//設置壁紙尺寸寬度=display.getWidth()* WALLPAPER_SCREENS_SPAN,高度=display.getHeight()
8.//加載布局文件
9.//初始化所有控件
10.//從Bundle savedInstanceState獲取桌面持久化數(shù)據 設置mRestoring = true;
11.如果mRestoring == false,調用LauncherModel加載桌面項 mModel.startLoader(this, true,isLanguageChange);
a.LauncherModel.Loader.startLoader() 代碼同步處理
b.新建LauncherModel.Loader.LoaderThread線程并啟動線程(桌面項加載,詳細見第三步)
12.注冊Intent.ACTION_CLOSE_SYSTEM_DIALOGS廣播監(jiān)聽
三 桌面項加載 LauncherModel.Loader.LoaderThread.run:新線程執(zhí)行
1.等待主線程運行結束才開始加載
2.判斷是否先加載桌面;loadWorkspaceFirst = cbk != null ? (!cbk.isAllAppsVisible()) : true;
3.loadWorkspaceFirst==true
a.loadAndBindWorkspace()
loadWorkspace():從數(shù)據庫launcher.db中查詢中所有桌面項構造對應類型的ItemInfo對象存入
mItems,mAppWidgets,mFolders列表.
bindWorkspace():
1.laucher.startBinding(),異步調用,在主線程中handle
//do no things
2.laucher.bindItems(),異步調用,在主線程中handle
1.根據ItemInfo對象創(chuàng)建桌面圖標view對象
2.獲取item.screen, item.cellX, item.cellY, spanX, spanY,
調用workspace.addInScreen添加到對應桌面的cell
1.重新設置桌面圖標view 的layoutparam(類型為cellLayout.layoutparam)
2.根據item.screen獲取桌面的celllayout對象,也就是workspace下5個用戶桌面中的一個
3.調用celllayout.addview方法把桌面圖標view對象添加為celllayout的child,也就是為用戶桌面添加一個桌面圖標
4.桌面圖標view對象添加OnLongClickListener=laucher,由laucher負責監(jiān)聽桌面圖標view的longclick事件
5.如果桌面圖標是DropTarget對象,拖放控制器mDragController添加該view到拖放目的地列表
3.laucher.bindFolders(),異步調用,在主線程中handle
//launcher.mFolders.putAll(mFolders);
4.laucher.bindAppWidget(),異步調用,在主線程中handle
1.獲取LauncherAppWidgetInfo的appWidgetId
2.獲取AppWidgetProviderInfo appWidgetInfo mAppWidgetManager.getAppWidgetInfo(appWidgetId)
3.根據appWidgetInfo創(chuàng)建桌面組件的view AppWidgetHostView對象
4.調用workspace.addInScreen添加到對應桌面的cell
5.laucher.finishBindingItems(),異步調用,在主線程中handle
mWorkspaceLoading=false
b.loadAndBindAllApps();
如果沒有加載apps或者改變了語言設置
loadAllAppsByBatch();
1.//設置package 查詢條件Intent.ACTION_MAIN Intent.CATEGORY_LAUNCHER
2.//清空mAllAppsList mAllAppsList.clear();
3.//packageManager 查詢所有應用pakages
4.分批次mAllAppsList.add 應用pakages
5.laucher.bindAllApplications()//異步調用
mAllAppsGrid.setApps(apps)
6.若分多個批次加載 laucher.bindAppsAdded()//異步調用
mAllAppsGrid.addApps(apps);
否則
onlyBindAllApps();
1.mAllAppsList.data.clone();
2.laucher.bindAllApplications()//異步調用
mAllAppsGrid.setApps(apps)
4.loadWorkspaceFirst==false
a.loadAndBindAllApps();
b.loadAndBindWorkspace();
http://www.cnblogs.com/playing/archive/2011/04/22/2024980.html
posted @
2013-02-18 17:37 小果子 閱讀(809) |
評論 (0) |
編輯 收藏
在Android的設計中,資源的訪問或者網絡連接,要得到這些服務都需要聲明其訪問權限,否則將無法正常工作。在Android中這樣的權限有很多種,這里將各類訪問權限一一羅列出來,供大家使用時參考之用。
android.permission.EXPAND_STATUS_BAR
允許一個程序擴展收縮在狀態(tài)欄,android開發(fā)網提示應該是一個類似Windows Mobile中的托盤程序
android.permission.FACTORY_TEST
作為一個工廠測試程序,運行在root用戶
android.permission.FLASHLIGHT
訪問閃光燈,android開發(fā)網提示HTC Dream不包含閃光燈
android.permission.FORCE_BACK
允許程序強行一個后退操作是否在頂層activities
android.permission.FOTA_UPDATE
暫時不了解這是做什么使用的,android開發(fā)網分析可能是一個預留權限.
android.permission.GET_ACCOUNTS
訪問一個帳戶列表在Accounts Service中
android.permission.GET_PACKAGE_SIZE
允許一個程序獲取任何package占用空間容量
android.permission.GET_TASKS
允許一個程序獲取信息有關當前或最近運行的任務,一個縮略的任務狀態(tài),是否活動等等
android.permission.HARDWARE_TEST
允許訪問硬件
android.permission.INJECT_EVENTS
允許一個程序截獲用戶事件如按鍵、觸摸、軌跡球等等到一個時間流,android 開發(fā)網提醒算是hook技術吧
android.permission.INSTALL_PACKAGES
允許一個程序安裝packages
android.permission.INTERNAL_SYSTEM_WINDOW
允許打開窗口使用系統(tǒng)用戶界面
android.permission.ACCESS_CHECKIN_PROPERTIES
允許讀寫訪問“properties”表在checkin數(shù)據庫中,改值可以修改上傳。
android.permission.ACCESS_COARSE_LOCATION
允許一個程序訪問CellID或WiFi熱點來獲取粗略的位置
android.permission.ACCESS_FINE_LOCATION
允許一個程序訪問精良位置(如GPS)
android.permission.WRITE_CONTACTS
允許程序寫入但不讀取用戶聯(lián)系人數(shù)據
android.permission.WRITE_GSERVICES
允許程序修改Google服務地圖
android.permission.WRITE_OWNER_DATA
允許一個程序寫入但不讀取所有者數(shù)據
android.permission.WRITE_SETTINGS
允許程序讀取或寫入系統(tǒng)設置
android.permission.WRITE_SMS
允許程序寫短信
android.permission.WRITE_SYNC_SETTINGS
允許程序寫入同步設置
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允許應用程序訪問額外的位置提供命令
android.permission.ACCESS_MOCK_LOCATION
允許程序創(chuàng)建模擬位置提供用于測試
android.permission.ACCESS_NETWORK_STATE
允許程序訪問有關GSM網絡信息
android.permission.ACCESS_SURFACE_FLINGER
允許程序使用SurfaceFlinger底層特性
android.permission.ACCESS_WIFI_STATE
允許程序訪問Wi-Fi網絡狀態(tài)信息
android.permission.ADD_SYSTEM_SERVICE
允許程序發(fā)布系統(tǒng)級服務
android.permission.BATTERY_STATS
允許程序更新手機電池統(tǒng)計信息
android.permission.BLUETOOTH
允許程序連接到已配對的藍牙設備
android.permission.BLUETOOTH_ADMIN
允許程序發(fā)現(xiàn)和配對藍牙設備
android.permission.BROADCAST_PACKAGE_REMOVED
允許程序廣播一個提示消息在一個應用程序包已經移除后
android.permission.BROADCAST_STICKY
允許一個程序廣播常用intents
android.permission.CALL_PHONE
允許一個程序初始化一個電話撥號不需通過撥號用戶界面需要用戶確認
android.permission.DELETE_CACHE_FILES
允許程序刪除緩存文件
android.permission.DELETE_PACKAGES
允許一個程序刪除包
android.permission.DEVICE_POWER
允許訪問底層電源管理
android.permission.DIAGNOSTIC
允許程序RW診斷資源
android.permission.DISABLE_KEYGUARD
允許程序禁用鍵盤鎖
android.permission.DUMP
允許程序返回狀態(tài)抓取信息從系統(tǒng)服務
android.permission.CALL_PRIVILEGED
允許一個程序撥打任何號碼,包含緊急號碼無需通過撥號用戶界面需要用戶確認
android.permission.CAMERA
請求訪問使用照相設備
android.permission.CHANGE_COMPONENT_ENABLED_STATE
允許一個程序是否改變一個組件或其他的啟用或禁用
android.permission.CHANGE_CONFIGURATION
允許一個程序修改當前設置,如本地化
android.permission.CHANGE_NETWORK_STATE
允許程序改變網絡連接狀態(tài)
android.permission.CHANGE_WIFI_STATE
允許程序改變Wi-Fi連接狀態(tài)
android.permission.CLEAR_APP_CACHE
允許一個程序清楚緩存從所有安裝的程序在設備中
android.permission.CLEAR_APP_USER_DATA
允許一個程序清除用戶設置
android.permission.CONTROL_LOCATION_UPDATES
允許啟用禁止位置更新提示從無線模塊
android.permission.REBOOT
請求能夠重新啟動設備
android.permission.RECEIVE_BOOT_COMPLETED
允許一個程序接收到 ACTION_BOOT_COMPLETED廣播在系統(tǒng)完成啟動
android.permission.RECEIVE_MMS
允許一個程序監(jiān)控將收到MMS彩信,記錄或處理
android.permission.RECEIVE_SMS
允許程序監(jiān)控一個將收到短信息,記錄或處理
android.permission.RECEIVE_WAP_PUSH
允許程序監(jiān)控將收到WAP PUSH信息
android.permission.RECORD_AUDIO
允許程序錄制音頻
android.permission.REORDER_TASKS
允許程序改變Z軸排列任務
android.permission.RESTART_PACKAGES
允許程序重新啟動其他程序
android.permission.SEND_SMS
允許程序發(fā)送SMS短信
android.permission.INTERNET
允許程序打開網絡套接字
android.permission.MANAGE_APP_TOKENS
允許程序管理(創(chuàng)建、催后、 z- order默認向z軸推移)程序引用在窗口管理器中
android.permission.MASTER_CLEAR目前還沒有明確的解釋,android開發(fā)網分析可能是清除一切數(shù)據,類似硬格機
android.permission.MODIFY_AUDIO_SETTINGS
允許程序修改全局音頻設置
android.permission.MODIFY_PHONE_STATE
允許修改話機狀態(tài),如電源,人機接口等
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允許掛載和反掛載文件系統(tǒng)可移動存儲
android.permission.PERSISTENT_ACTIVITY
允許一個程序設置他的activities顯示
android.permission.PROCESS_OUTGOING_CALLS
允許程序監(jiān)視、修改有關播出電話
android.permission.READ_CALENDAR
允許程序讀取用戶日歷數(shù)據
android.permission.READ_CONTACTS
允許程序讀取用戶聯(lián)系人數(shù)據
android.permission.READ_FRAME_BUFFER
允許程序屏幕波或和更多常規(guī)的訪問幀緩沖數(shù)據
android.permission.READ_INPUT_STATE
允許程序返回當前按鍵狀態(tài)
android.permission.READ_LOGS
允許程序讀取底層系統(tǒng)日志文件
android.permission.READ_OWNER_DATA
允許程序讀取所有者數(shù)據
android.permission.READ_SMS
允許程序讀取短信息
android.permission.READ_SYNC_SETTINGS
允許程序讀取同步設置
android.permission.READ_SYNC_STATS
允許程序讀取同步狀態(tài)
android.permission.SET_ACTIVITY_WATCHER
允許程序監(jiān)控或控制activities已經啟動全局系統(tǒng)中
android.permission.SET_ALWAYS_FINISH
允許程序控制是否活動間接完成在處于后臺時
android.permission.SET_ANIMATION_SCALE
修改全局信息比例
android.permission.SET_DEBUG_APP
配置一個程序用于調試
android.permission.SET_ORIENTATION
允許底層訪問設置屏幕方向和實際旋轉
android.permission.SET_PREFERRED_APPLICATIONS
允許一個程序修改列表參數(shù)PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法
android.permission.SET_PROCESS_FOREGROUND
允許程序當前運行程序強行到前臺
android.permission.SET_PROCESS_LIMIT
允許設置最大的運行進程數(shù)量
android.permission.SET_TIME_ZONE
允許程序設置時間區(qū)域
android.permission.SET_WALLPAPER
允許程序設置壁紙
android.permission.SET_WALLPAPER_HINTS
允許程序設置壁紙hits
android.permission.SIGNAL_PERSISTENT_PROCESSES
允許程序請求發(fā)送信號到所有顯示的進程中
android.permission.STATUS_BAR
允許程序打開、關閉或禁用狀態(tài)欄及圖標Allows an application to open, close, or disable the status bar and its icons.
android.permission.SUBSCRIBED_FEEDS_READ
允許一個程序訪問訂閱RSS Feed內容提供
android.permission.SUBSCRIBED_FEEDS_WRITE
系統(tǒng)暫時保留改設置,android開發(fā)網認為未來版本會加入該功能。
android.permission.SYSTEM_ALERT_WINDOW
允許一個程序打開窗口使用 TYPE_SYSTEM_ALERT,顯示在其他所有程序的頂層
android.permission.VIBRATE
允許訪問振動設備
android.permission.WAKE_LOCK
允許使用PowerManager的 WakeLocks保持進程在休眠時從屏幕消失
android.permission.WRITE_APN_SETTINGS
允許程序寫入API設置
android.permission.WRITE_CALENDAR
允許一個程序寫入但不讀取用戶日歷數(shù)據
可以看出Android中對資源以及服務的訪問都非常嚴格,另外,在程序打包成APK的時候也需要對軟件進行簽名。
| 訪問登記屬性 | android.permission.ACCESS_CHECKIN_PROPERTIES ,讀取或寫入登記check-in數(shù)據庫屬性表的權限 |
| 獲取錯略位置 | android.permission.ACCESS_COARSE_LOCATION,通過WiFi或移動基站的方式獲取用戶錯略的經緯度信息,定位精度大概誤差在30~1500米 |
| 獲取精確位置 | android.permission.ACCESS_FINE_LOCATION,通過GPS芯片接收衛(wèi)星的定位信息,定位精度達10米以內 |
| 訪問定位額外命令 | android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允許程序訪問額外的定位提供者指令 |
| 獲取模擬定位信息 | android.permission.ACCESS_MOCK_LOCATION,獲取模擬定位信息,一般用于幫助開發(fā)者調試應用 |
| 獲取網絡狀態(tài) | android.permission.ACCESS_NETWORK_STATE,獲取網絡信息狀態(tài),如當前的網絡連接是否有效 |
| 訪問Surface Flinger | android.permission.ACCESS_SURFACE_FLINGER,Android平臺上底層的圖形顯示支持,一般用于游戲或照相機預覽界面和底層模式的屏幕截圖 |
| 獲取WiFi狀態(tài) | android.permission.ACCESS_WIFI_STATE,獲取當前WiFi接入的狀態(tài)以及WLAN熱點的信息 |
| 賬戶管理 | android.permission.ACCOUNT_MANAGER,獲取賬戶驗證信息,主要為GMail賬戶信息,只有系統(tǒng)級進程才能訪問的權限 |
| 驗證賬戶 | android.permission.AUTHENTICATE_ACCOUNTS,允許一個程序通過賬戶驗證方式訪問賬戶管理ACCOUNT_MANAGER相關信息 |
| 電量統(tǒng)計 | android.permission.BATTERY_STATS,獲取電池電量統(tǒng)計信息 |
| 綁定小插件 | android.permission.BIND_APPWIDGET,允許一個程序告訴appWidget服務需要訪問小插件的數(shù)據庫,只有非常少的應用才用到此權限 |
| 綁定設備管理 | android.permission.BIND_DEVICE_ADMIN,請求系統(tǒng)管理員接收者receiver,只有系統(tǒng)才能使用 |
| 綁定輸入法 | android.permission.BIND_INPUT_METHOD ,請求InputMethodService服務,只有系統(tǒng)才能使用 |
| 綁定RemoteView | android.permission.BIND_REMOTEVIEWS,必須通過RemoteViewsService服務來請求,只有系統(tǒng)才能用 |
| 綁定壁紙 | android.permission.BIND_WALLPAPER,必須通過WallpaperService服務來請求,只有系統(tǒng)才能用 |
| 使用藍牙 | android.permission.BLUETOOTH,允許程序連接配對過的藍牙設備 |
| 藍牙管理 | android.permission.BLUETOOTH_ADMIN,允許程序進行發(fā)現(xiàn)和配對新的藍牙設備 |
| 變成磚頭 | android.permission.BRICK,能夠禁用手機,非常危險,顧名思義就是讓手機變成磚頭 |
| 應用刪除時廣播 | android.permission.BROADCAST_PACKAGE_REMOVED,當一個應用在刪除時觸發(fā)一個廣播 |
| 收到短信時廣播 | android.permission.BROADCAST_SMS,當收到短信時觸發(fā)一個廣播 |
| 連續(xù)廣播 | android.permission.BROADCAST_STICKY,允許一個程序收到廣播后快速收到下一個廣播 |
| WAP PUSH廣播 | android.permission.BROADCAST_WAP_PUSH,WAP PUSH服務收到后觸發(fā)一個廣播 |
| 撥打電話 | android.permission.CALL_PHONE,允許程序從非系統(tǒng)撥號器里輸入電話號碼 |
| 通話權限 | android.permission.CALL_PRIVILEGED,允許程序撥打電話,替換系統(tǒng)的撥號器界面 |
| 拍照權限 | android.permission.CAMERA,允許訪問攝像頭進行拍照 |
| 改變組件狀態(tài) | android.permission.CHANGE_COMPONENT_ENABLED_STATE,改變組件是否啟用狀態(tài) |
| 改變配置 | android.permission.CHANGE_CONFIGURATION,允許當前應用改變配置,如定位 |
| 改變網絡狀態(tài) | android.permission.CHANGE_NETWORK_STATE,改變網絡狀態(tài)如是否能聯(lián)網 |
| 改變WiFi多播狀態(tài) | android.permission.CHANGE_WIFI_MULTICAST_STATE,改變WiFi多播狀態(tài) |
| 改變WiFi狀態(tài) | android.permission.CHANGE_WIFI_STATE,改變WiFi狀態(tài) |
| 清除應用緩存 | android.permission.CLEAR_APP_CACHE,清除應用緩存 |
| 清除用戶數(shù)據 | android.permission.CLEAR_APP_USER_DATA,清除應用的用戶數(shù)據 |
| 底層訪問權限 | android.permission.CWJ_GROUP,允許CWJ賬戶組訪問底層信息 |
| 手機優(yōu)化大師擴展權限 | android.permission.CELL_PHONE_MASTER_EX,手機優(yōu)化大師擴展權限 |
| 控制定位更新 | android.permission.CONTROL_LOCATION_UPDATES,允許獲得移動網絡定位信息改變 |
| 刪除緩存文件 | android.permission.DELETE_CACHE_FILES,允許應用刪除緩存文件 |
| 刪除應用 | android.permission.DELETE_PACKAGES,允許程序刪除應用 |
| 電源管理 | android.permission.DEVICE_POWER,允許訪問底層電源管理 |
| 應用診斷 | android.permission.DIAGNOSTIC,允許程序到RW到診斷資源 |
| 禁用鍵盤鎖 | android.permission.DISABLE_KEYGUARD,允許程序禁用鍵盤鎖 |
| 轉存系統(tǒng)信息 | android.permission.DUMP,允許程序獲取系統(tǒng)dump信息從系統(tǒng)服務 |
| 狀態(tài)欄控制 | android.permission.EXPAND_STATUS_BAR,允許程序擴展或收縮狀態(tài)欄 |
| 工廠測試模式 | android.permission.FACTORY_TEST,允許程序運行工廠測試模式 |
| 使用閃光燈 | android.permission.FLASHLIGHT,允許訪問閃光燈 |
| 強制后退 | android.permission.FORCE_BACK,允許程序強制使用back后退按鍵,無論Activity是否在頂層 |
| 訪問賬戶Gmail列表 | android.permission.GET_ACCOUNTS,訪問GMail賬戶列表 |
| 獲取應用大小 | android.permission.GET_PACKAGE_SIZE,獲取應用的文件大小 |
| 獲取任務信息 | android.permission.GET_TASKS,允許程序獲取當前或最近運行的應用 |
| 允許全局搜索 | android.permission.GLOBAL_SEARCH,允許程序使用全局搜索功能 |
| 硬件測試 | android.permission.HARDWARE_TEST,訪問硬件輔助設備,用于硬件測試 |
| 注射事件 | android.permission.INJECT_EVENTS,允許訪問本程序的底層事件,獲取按鍵、軌跡球的事件流 |
| 安裝定位提供 | android.permission.INSTALL_LOCATION_PROVIDER,安裝定位提供 |
| 安裝應用程序 | android.permission.INSTALL_PACKAGES,允許程序安裝應用 |
| 內部系統(tǒng)窗口 | android.permission.INTERNAL_SYSTEM_WINDOW,允許程序打開內部窗口,不對第三方應用程序開放此權限 |
| 訪問網絡 | android.permission.INTERNET,訪問網絡連接,可能產生GPRS流量 |
| 結束后臺進程 | android.permission.KILL_BACKGROUND_PROCESSES,允許程序調用killBackgroundProcesses(String).方法結束后臺進程 |
| 管理賬戶 | android.permission.MANAGE_ACCOUNTS,允許程序管理AccountManager中的賬戶列表 |
| 管理程序引用 | android.permission.MANAGE_APP_TOKENS,管理創(chuàng)建、摧毀、Z軸順序,僅用于系統(tǒng) |
| 高級權限 | android.permission.MTWEAK_USER,允許mTweak用戶訪問高級系統(tǒng)權限 |
| 社區(qū)權限 | android.permission.MTWEAK_FORUM,允許使用mTweak社區(qū)權限 |
| 軟格式化 | android.permission.MASTER_CLEAR,允許程序執(zhí)行軟格式化,刪除系統(tǒng)配置信息 |
| 修改聲音設置 | android.permission.MODIFY_AUDIO_SETTINGS,修改聲音設置信息 |
| 修改電話狀態(tài) | android.permission.MODIFY_PHONE_STATE,修改電話狀態(tài),如飛行模式,但不包含替換系統(tǒng)撥號器界面 |
| 格式化文件系統(tǒng) | android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移動文件系統(tǒng),比如格式化清空SD卡 |
| 掛載文件系統(tǒng) | android.permission.MOUNT_UNMOUNT_FILESYSTEMS,掛載、反掛載外部文件系統(tǒng) |
| 允許NFC通訊 | android.permission.NFC,允許程序執(zhí)行NFC近距離通訊操作,用于移動支持 |
| 永久Activity | android.permission.PERSISTENT_ACTIVITY,創(chuàng)建一個永久的Activity,該功能標記為將來將被移除 |
| 處理撥出電話 | android.permission.PROCESS_OUTGOING_CALLS,允許程序監(jiān)視,修改或放棄播出電話 |
| 讀取日程提醒 | android.permission.READ_CALENDAR,允許程序讀取用戶的日程信息 |
| 讀取聯(lián)系人 | android.permission.READ_CONTACTS,允許應用訪問聯(lián)系人通訊錄信息 |
| 屏幕截圖 | android.permission.READ_FRAME_BUFFER,讀取幀緩存用于屏幕截圖 |
| 讀取收藏夾和歷史記錄 | com.android.browser.permission.READ_HISTORY_BOOKMARKS,讀取瀏覽器收藏夾和歷史記錄 |
| 讀取輸入狀態(tài) | android.permission.READ_INPUT_STATE,讀取當前鍵的輸入狀態(tài),僅用于系統(tǒng) |
| 讀取系統(tǒng)日志 | android.permission.READ_LOGS,讀取系統(tǒng)底層日志 |
| 讀取電話狀態(tài) | android.permission.READ_PHONE_STATE,訪問電話狀態(tài) |
| 讀取短信內容 | android.permission.READ_SMS,讀取短信內容 |
| 讀取同步設置 | android.permission.READ_SYNC_SETTINGS,讀取同步設置,讀取Google在線同步設置 |
| 讀取同步狀態(tài) | android.permission.READ_SYNC_STATS,讀取同步狀態(tài),獲得Google在線同步狀態(tài) |
| 重啟設備 | android.permission.REBOOT,允許程序重新啟動設備 |
| 開機自動允許 | android.permission.RECEIVE_BOOT_COMPLETED,允許程序開機自動運行 |
| 接收彩信 | android.permission.RECEIVE_MMS,接收彩信 |
| 接收短信 | android.permission.RECEIVE_SMS,接收短信 |
| 接收Wap Push | android.permission.RECEIVE_WAP_PUSH,接收WAP PUSH信息 |
| 錄音 | android.permission.RECORD_AUDIO,錄制聲音通過手機或耳機的麥克 |
| 排序系統(tǒng)任務 | android.permission.REORDER_TASKS,重新排序系統(tǒng)Z軸運行中的任務 |
| 結束系統(tǒng)任務 | android.permission.RESTART_PACKAGES,結束任務通過restartPackage(String)方法,該方式將在外來放棄 |
| 發(fā)送短信 | android.permission.SEND_SMS,發(fā)送短信 |
| 設置Activity觀察其 | android.permission.SET_ACTIVITY_WATCHER,設置Activity觀察器一般用于monkey測試 |
| 設置鬧鈴提醒 | com.android.alarm.permission.SET_ALARM,設置鬧鈴提醒 |
| 設置總是退出 | android.permission.SET_ALWAYS_FINISH,設置程序在后臺是否總是退出 |
| 設置動畫縮放 | android.permission.SET_ANIMATION_SCALE,設置全局動畫縮放 |
| 設置調試程序 | android.permission.SET_DEBUG_APP,設置調試程序,一般用于開發(fā) |
| 設置屏幕方向 | android.permission.SET_ORIENTATION,設置屏幕方向為橫屏或標準方式顯示,不用于普通應用 |
| 設置應用參數(shù) | android.permission.SET_PREFERRED_APPLICATIONS,設置應用的參數(shù),已不再工作具體查看addPackageToPreferred(String) 介紹 |
| 設置進程限制 | android.permission.SET_PROCESS_LIMIT,允許程序設置最大的進程數(shù)量的限制 |
| 設置系統(tǒng)時間 | android.permission.SET_TIME,設置系統(tǒng)時間 |
| 設置系統(tǒng)時區(qū) | android.permission.SET_TIME_ZONE,設置系統(tǒng)時區(qū) |
| 設置桌面壁紙 | android.permission.SET_WALLPAPER,設置桌面壁紙 |
| 設置壁紙建議 | android.permission.SET_WALLPAPER_HINTS,設置壁紙建議 |
| 發(fā)送永久進程信號 | android.permission.SIGNAL_PERSISTENT_PROCESSES,發(fā)送一個永久的進程信號 |
| 狀態(tài)欄控制 | android.permission.STATUS_BAR,允許程序打開、關閉、禁用狀態(tài)欄 |
| 訪問訂閱內容 | android.permission.SUBSCRIBED_FEEDS_READ,訪問訂閱信息的數(shù)據庫 |
| 寫入訂閱內容 | android.permission.SUBSCRIBED_FEEDS_WRITE,寫入或修改訂閱內容的數(shù)據庫 |
| 顯示系統(tǒng)窗口 | android.permission.SYSTEM_ALERT_WINDOW,顯示系統(tǒng)窗口 |
| 更新設備狀態(tài) | android.permission.UPDATE_DEVICE_STATS,更新設備狀態(tài) |
| 使用證書 | android.permission.USE_CREDENTIALS,允許程序請求驗證從AccountManager |
| 使用SIP視頻 | android.permission.USE_SIP,允許程序使用SIP視頻服務 |
| 使用振動 | android.permission.VIBRATE,允許振動 |
| 喚醒鎖定 | android.permission.WAKE_LOCK,允許程序在手機屏幕關閉后后臺進程仍然運行 |
| 寫入GPRS接入點設置 | android.permission.WRITE_APN_SETTINGS,寫入網絡GPRS接入點設置 |
| 寫入日程提醒 | android.permission.WRITE_CALENDAR,寫入日程,但不可讀取 |
| 寫入聯(lián)系人 | android.permission.WRITE_CONTACTS,寫入聯(lián)系人,但不可讀取 |
| 寫入外部存儲 | android.permission.WRITE_EXTERNAL_STORAGE,允許程序寫入外部存儲,如SD卡上寫文件 |
| 寫入Google地圖數(shù)據 | android.permission.WRITE_GSERVICES,允許程序寫入Google Map服務數(shù)據 |
| 寫入收藏夾和歷史記錄 | com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,寫入瀏覽器歷史記錄或收藏夾,但不可讀取 |
| 讀寫系統(tǒng)敏感設置 | android.permission.WRITE_SECURE_SETTINGS,允許程序讀寫系統(tǒng)安全敏感的設置項 |
| 讀寫系統(tǒng)設置 | android.permission.WRITE_SETTINGS,允許讀寫系統(tǒng)設置項 |
| 編寫短信 | android.permission.WRITE_SMS,允許編寫短信 |
| 寫入在線同步設置 | android.permission.WRITE_SYNC_SETTINGS,寫入Google在線同步設置 |
posted @
2013-02-18 15:58 小果子 閱讀(32984) |
評論 (1) |
編輯 收藏
Android的 ROM中有很多odex文件,相對于APK中的dex文件而言這個odex有什么作用呢? 如果你仔細觀察會發(fā)現(xiàn)文件名時一一對應的,同時那些對應的apk文件中沒有dex文件。這樣做可以使其廠商保證一定的反盜版,因為沒有沒有dex文件的 apk是無法正常安裝的,而廠商直接將odex和不完整的apk文件放到手機rom固化到/system/bin中可以讓一般用戶無法正常導出使用
可能想到的是合并odex和apk變成apk中包含dex文件的,這樣合并后最終apk文件安裝在/data/中,而rom存放在 /system/app中,所以最終導致了用戶可裝在Android手機中的軟件會變少,占用系統(tǒng)空間。
1. 下載 http://smali.googlecode.com/files/smali-1.2.2.jar 和 http://smali.googlecode.com/files/baksmali-1.2.2.jar ,既然是需要盜版,還需要odex所在rom中的一些引用類,一般在 /system/framework 目錄中
2 . 通過odex生成class文件
java -jar baksmali-1.2.2.jar -x android123.odex
執(zhí)行完上面這行命令后,會生成一個out 文件夾里面是android123.odex的class文件。出現(xiàn)問題,根據提示可以從rom的 /system/framework 中的**.jar放到pc上的java環(huán)境變量中一起生成。
3. 通過class生成classes.dex 文件。
java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex
4. 將classes.dex放到apk文件
因為apk是zip的mime編碼類型,使用winzip或winrar直接拖入到apk改名為zip的壓縮包中即可。
5. 不要忘記了簽名,使用jdk中的arsigner和keytool打包重新簽名即可。
有時候發(fā)現(xiàn)別人手機里有一款 apk 挺好,想弄出來裝自己手機上,可是卻發(fā)現(xiàn)那個 apk 是殘缺的,里面沒有 classes.dex 文件,卻有個跟 apk 同名的 odex 文件。殘缺的 apk 是裝不了的,只能把這個 apk 跟 odex 合并成一個完整的 apk 才能安裝。 需要的工具:
1 . smali-1.2.2.jar 和 baksmali-1.2.2.jar
2 . 還需要這個 apk 所在的 rom 里面的一些 jar 文件,都在 /system/framework 里面: core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar 。
當然,這五個是最基本的,有可能還不夠,這種情況下面會講到。
總共分四步:
1 . 把下載好的 smali-1.2.2.jar 和 baksmali-1.2.2.jar ,還有 rom 里面摳出來的 5 個 jar ,放到工作目錄,然后 apk 和 odex 也放到一起。
2 . 分解 odex 文件為 class 文件。命令: java -jar baksmali-1.2.2.jar -x 處是你要分解的 odex 文件的名字,命令完成之后,會生成一個 out 文件夾,里面就是所有的 class 文件。如果出現(xiàn)問題,比如什么異常,缺少包什么的,就更到 rom 里面把出錯信息里面要求的包拿出來,放到當前目錄下。
3. 將 class 生成為 classes.dex 文件。命令: java -Xmx512M -jar smali-1.2.2.jar out -o classes.dex 這一步應該不會有什么問題,然后會生成 classes.dex 文件。
4. 把 classes.dex 放入 apk 里面,把蓋子蓋上。最后這一步最簡單了,用解壓縮軟件打開 apk ,然后把千辛萬苦生成的 classes.dex 塞進去,就 ok 了。這個 apk 就能用了。如果想給他重新簽個名的話,去找個 Auto Sign 簽名工具簽署一下就行。
posted @
2013-02-17 14:57 小果子 閱讀(3151) |
評論 (0) |
編輯 收藏
1.SIN2IMG
用于固件ftf中system.sin的解包
下載地址: SIN2IMG.rar
使用方法:將固件ftf文件用rar打開,解壓出system.sin文件,將該文件于SIN2IMG.exe放在同一個文件夾里面,比如說 X:\下,進入CMD,用cd命令進入X:\目錄,輸入SIN2IMG.exe system.sin system.img稍等一會,system.img就解包出來了。
2.unyaffs
用于system.img文件的解包
下載地址: Unyaffs.rar
使用方法:將上一步解包出來的system.img文件與下載好的unayffs.exe文件放在同一個文件夾里面,比如說X:\下,進入 CMD,用cd命令進入X:\目錄,輸入unyaffs.exe system.img稍等一會,system.img中的內容即可解包出來,包含有rom的全部程序和其他內容。
3.Cygwin
Htc廚房,適用于win環(huán)境下自制rom(非linux下使用的版本),包括預root、創(chuàng)建刷機腳本、App2SD、開機腳本設定等以及rom打包簽名。
下載地址:http://u.115.com/file/bhzeovtf ( 已修復不能解壓問題 )
使用方法:解壓下載好的rar文件,比如解壓到X:\目錄下。進入X:\Cygwin目錄,找到Cygwin.bat文件,右鍵選擇編輯,看到 這一行:chdir d:\cygwin\bin,將其改為chdir X:\cygwin\bin,然后進入X:\Cygwin\home,將user目錄改名為你當前操作系統(tǒng)用戶的名字(即登錄windows時候顯示的用 戶名),然后返回上級目錄雙擊Cygwin.bat即可打開廚房
4.Rom-Sign
rom簽名工具
下載地址: Rom-Sign.rar
使用方法:解壓到X:\目錄下,將需要簽名的rom包(zip包)改名為update.zip,然后雙擊Sign.bat,生成的update_sign.zip就是簽名好的rom。
5.APKtool
反編譯和回編譯以及簽名apk工具(如何修改框架、布局、資源文件請自行學習)
下載地址: 1) Apktool_v1.rar這版畫面比較親和適合小白使用
2) APKtoolv132.rar 這版比較給力,使用說明程序已經很直白了,就不多說了
6.Xtemp
dex解包和打包工具
下載地址: Xtemp.rar
使用方法:將需要解包的.dex文件放置于Xtemp目錄下,將.dex文件拖動至dex.bat文件,即可出現(xiàn)批處理窗口,然后選擇1解包即 可。解壓后是一個完整的文件夾,打包的時候將文件夾拖動至dex.bat文件,即可出現(xiàn)批處理窗口,選擇2打包即可完成打包,之后生成打包好的.dex文 件
7.APK manager
批量處理APK工具
下載地址: Apk Manager.rar
使用方法:程序本身已經寫的很清楚了,不再過多解釋
8.draw9patch
用于索引png文件修改和打包工具
下載地址: 9png.rar
使用方法:先用PS等軟件處理圖片,然后再用9png來處理,最后用X那個軟件打包。
9.Java JDK
Java環(huán)境安裝程序,這個必須裝,不然以上以下的程序有可能運行不了。
下載地址:http://u.115.com/file/bhze9xyf
10.Android-sdk
安卓SDK這個就不說了,下了選擇你需要的API下載
下載地址:http://u.115.com/file/clg28r43
11.eclipse
最新的Eclipse JAVA編譯環(huán)境
下載地址:http://u.115.com/file/bhzeezng
12.ADT
下載地址:http://u.115.com/file/bhze92e2
13.Repo:
1 mkdir -p ~/bin
2 curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo
3 chmod a+x ~/bin/repo
14.ROM源代碼
CM7完整源碼:
1 mkdir -p ~/android/system
2 cd ~/android/system/
3 repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
4 repo sync
posted @
2013-02-17 14:56 小果子 閱讀(2123) |
評論 (0) |
編輯 收藏