xiaoguozi's Blog
Pay it forword - 我并不觉的自豪,我所尝试的事情都失败了······习惯原本生活的人不容易改变,就算现状很糟,他们也很难改变,在过程中,他们还是放弃了······他们一放弃,大家就都是输家······让爱传出去,很困难,也无法预料,人们需要更细心的观察别人,要随时注意才能保护别人,因为他们未必知道自己要什么·····

用过ubuntu,现在想换换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 拷贝到系统的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”

以上工作完成后,重启系统即可开始XP硬盘安装Linux Mint的过程了!

 

不过我安装花了好长的时候,时间主要是浪费在系统分区上了,每个分区的操作都要等上好久啊,蛋疼啊!

注意:在重启后进入Linux Mint界面后就先卸载isodevices

  umount -l /isodevices

这步很重要,未执行这步,分区无法成功。

 

2、配置

安装完成之后可以进行配置了,由于安装是没有链接到网络,也就没有下载更新包、语言包。现在首要的就是进行安装语言包。

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
等待执行完成即可。这时你会发现 Linux Mint 原来如此轻盈!

 

2.2、安装输入法

在这里我安装的是FCITX

直接从软件管理器中搜索fcitx,然后安装。

安装完成后到 控制中心 ---》Language Support 的键盘输入方式系统中选择fictx

重启系统即可使用。

 

 2.3、安装QQ

1、到以下网址下载deb安装包,http://www.longene.org/download/qq2011-for-wine_20120220.deb,已经打包好的deb包,大小为150M左右;

  最新发布 6-1 号更新的 :http://www.longene.org/download/WineQQ2012-20120531-Longene.deb 有几个bug 已经修补啦 !

2、打开终端输入到目录中运行命令安装:

  sudo dpkg -i *.deb

3、64位系统还需要运行以下命令:

  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位系统:

wget -O google-chrome_i386.deb http://goo.gl/itppy

sudo dpkg -i google-chrome_i386.deb

64位系统:

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后发现  ndo_set_multicast_listndo_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源码开发环境

在本节搭建的是Android4.0的源码开发环境。

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)。

增加执行权限:sudo chmod u+x jdk-6u34-linux-x64.bin

将安装文件拷贝到 /usr/lib/java/ 目录下

执行安装命令  ./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的环境变量将配置成功了,但这样默认使用的JDK可能还不是我们 刚才安装的,因为ubuntu可能还会有默认的jdk,如openjdk;所以,为了使默认使用的是我们安装的jdk,还需执行如下命令:

     $ 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    

 成功执行命令后,我们安装的JDK就是系统默认的了,执行命令 $ 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
现: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、重启后出现 waiting for network configuration 问题

如今在 ubuntu 12.04 环境下接着拨号时,如果使用 sudo pppoeconf 命令配置拨号,重启电脑后就会先显示 waiting for network configuration,然后是 waiting up to 60 more seconds for network configuration,最后显示booting system without full network configuration.并且进入桌面后网络连接状态图标也不见了。
问题原因:

使用 sudo pppoeconf 命令时,会有信息写入/etc/network/interfaces 文件内,直接导致出现了上面的问题。

问题解决:

sudo gedit /etc/network/interfaces  打开文件后,将其中除

auto lo

iface lo inet loopback
外其他内容全部删除后,重启系统就可以了。

posted @ 2013-02-19 17:06 小果子 阅读(1723) | 评论 (0)编辑 收藏
一LauncherApplication->onCreate
  1.//设置最小堆内存4M
  2.//建立应用图标缓存器
  3.//建立LauncherModel
  4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器
  LauncherModel作为广播接收器对上面3中事件进行监听
  5.//添加对桌面favorites content provider 数据变化监听器
  二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获取桌面持久化数据 设置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广播监听
  三 桌面项加载 LauncherModel.Loader.LoaderThread.run:新线程执行
  1.等待主线程运行结束才开始加载
  2.判断是否先加载桌面;loadWorkspaceFirst = cbk != null ? (!cbk.isAllAppsVisible()) : true;
  3.loadWorkspaceFirst==true
  a.loadAndBindWorkspace()
  loadWorkspace():从数据库launcher.db中查询中所有桌面项构造对应类型的ItemInfo对象存入
  mItems,mAppWidgets,mFolders列表.
  bindWorkspace():
  1.laucher.startBinding(),异步调用,在主线程中handle
  //do no things
  2.laucher.bindItems(),异步调用,在主线程中handle
  1.根据ItemInfo对象创建桌面图标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负责监听桌面图标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创建桌面组件的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 小果子 阅读(775) | 评论 (0)编辑 收藏

在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作。在Android中这样的权限有很多种,这里将各类访问权限一一罗列出来,供大家使用时参考之用。

 

 

android.permission.EXPAND_STATUS_BAR
允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序

android.permission.FACTORY_TEST
作为一个工厂测试程序,运行在root用户

android.permission.FLASHLIGHT
访问闪光灯,android开发网提示HTC Dream不包含闪光灯

android.permission.FORCE_BACK
允许程序强行一个后退操作是否在顶层activities

android.permission.FOTA_UPDATE
暂时不了解这是做什么使用的,android开发网分析可能是一个预留权限.

android.permission.GET_ACCOUNTS
访问一个帐户列表在Accounts Service中

android.permission.GET_PACKAGE_SIZE
允许一个程序获取任何package占用空间容量

android.permission.GET_TASKS
允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等

android.permission.HARDWARE_TEST
允许访问硬件

android.permission.INJECT_EVENTS
允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流,android 开发网提醒算是hook技术吧

android.permission.INSTALL_PACKAGES
允许一个程序安装packages

android.permission.INTERNAL_SYSTEM_WINDOW
允许打开窗口使用系统用户界面

android.permission.ACCESS_CHECKIN_PROPERTIES
允许读写访问“properties”表在checkin数据库中,改值可以修改上传。

android.permission.ACCESS_COARSE_LOCATION
允许一个程序访问CellID或WiFi热点来获取粗略的位置

android.permission.ACCESS_FINE_LOCATION
允许一个程序访问精良位置(如GPS)

android.permission.WRITE_CONTACTS
允许程序写入但不读取用户联系人数据

android.permission.WRITE_GSERVICES
允许程序修改Google服务地图

android.permission.WRITE_OWNER_DATA
允许一个程序写入但不读取所有者数据

android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置

android.permission.WRITE_SMS
允许程序写短信

android.permission.WRITE_SYNC_SETTINGS
允许程序写入同步设置

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许应用程序访问额外的位置提供命令

android.permission.ACCESS_MOCK_LOCATION
允许程序创建模拟位置提供用于测试

android.permission.ACCESS_NETWORK_STATE
允许程序访问有关GSM网络信息

android.permission.ACCESS_SURFACE_FLINGER
允许程序使用SurfaceFlinger底层特性

android.permission.ACCESS_WIFI_STATE
允许程序访问Wi-Fi网络状态信息

android.permission.ADD_SYSTEM_SERVICE
允许程序发布系统级服务

android.permission.BATTERY_STATS
允许程序更新手机电池统计信息

android.permission.BLUETOOTH
允许程序连接到已配对的蓝牙设备

android.permission.BLUETOOTH_ADMIN
允许程序发现和配对蓝牙设备

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
允许程序返回状态抓取信息从系统服务

android.permission.CALL_PRIVILEGED
允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认

android.permission.CAMERA
请求访问使用照相设备

android.permission.CHANGE_COMPONENT_ENABLED_STATE
允许一个程序是否改变一个组件或其他的启用或禁用

android.permission.CHANGE_CONFIGURATION
允许一个程序修改当前设置,如本地化

android.permission.CHANGE_NETWORK_STATE
允许程序改变网络连接状态

android.permission.CHANGE_WIFI_STATE
允许程序改变Wi-Fi连接状态

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广播在系统完成启动

android.permission.RECEIVE_MMS
允许一个程序监控将收到MMS彩信,记录或处理

android.permission.RECEIVE_SMS
允许程序监控一个将收到短信息,记录或处理

android.permission.RECEIVE_WAP_PUSH
允许程序监控将收到WAP PUSH信息

android.permission.RECORD_AUDIO
允许程序录制音频

android.permission.REORDER_TASKS
允许程序改变Z轴排列任务

android.permission.RESTART_PACKAGES
允许程序重新启动其他程序

android.permission.SEND_SMS
允许程序发送SMS短信

android.permission.INTERNET
允许程序打开网络套接字

android.permission.MANAGE_APP_TOKENS
允许程序管理(创建、催后、 z- order默认向z轴推移)程序引用在窗口管理器中

android.permission.MASTER_CLEAR目前还没有明确的解释,android开发网分析可能是清除一切数据,类似硬格机

android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改全局音频设置

android.permission.MODIFY_PHONE_STATE
允许修改话机状态,如电源,人机接口等

android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许挂载和反挂载文件系统可移动存储

android.permission.PERSISTENT_ACTIVITY
允许一个程序设置他的activities显示

android.permission.PROCESS_OUTGOING_CALLS
允许程序监视、修改有关播出电话

android.permission.READ_CALENDAR
允许程序读取用户日历数据

android.permission.READ_CONTACTS
允许程序读取用户联系人数据

android.permission.READ_FRAME_BUFFER
允许程序屏幕波或和更多常规的访问帧缓冲数据

android.permission.READ_INPUT_STATE
允许程序返回当前按键状态

android.permission.READ_LOGS
允许程序读取底层系统日志文件

android.permission.READ_OWNER_DATA
允许程序读取所有者数据

android.permission.READ_SMS
允许程序读取短信息

android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置

android.permission.READ_SYNC_STATS
允许程序读取同步状态

android.permission.SET_ACTIVITY_WATCHER
允许程序监控或控制activities已经启动全局系统中

android.permission.SET_ALWAYS_FINISH
允许程序控制是否活动间接完成在处于后台时

android.permission.SET_ANIMATION_SCALE
修改全局信息比例

android.permission.SET_DEBUG_APP
配置一个程序用于调试

android.permission.SET_ORIENTATION
允许底层访问设置屏幕方向和实际旋转

android.permission.SET_PREFERRED_APPLICATIONS
允许一个程序修改列表参数PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法

android.permission.SET_PROCESS_FOREGROUND
允许程序当前运行程序强行到前台

android.permission.SET_PROCESS_LIMIT
允许设置最大的运行进程数量

android.permission.SET_TIME_ZONE
允许程序设置时间区域

android.permission.SET_WALLPAPER
允许程序设置壁纸

android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸hits

android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序请求发送信号到所有显示的进程中

android.permission.STATUS_BAR
允许程序打开、关闭或禁用状态栏及图标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
系统暂时保留改设置,android开发网认为未来版本会加入该功能。

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
允许一个程序写入但不读取用户日历数据

可以看出Android中对资源以及服务的访问都非常严格,另外,在程序打包成APK的时候也需要对软件进行签名。


访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限
获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米
获取精确位置 android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内
访问定位额外命令 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS,允许程序访问额外的定位提供者指令
获取模拟定位信息 android.permission.ACCESS_MOCK_LOCATION,获取模拟定位信息,一般用于帮助开发者调试应用
获取网络状态 android.permission.ACCESS_NETWORK_STATE,获取网络信息状态,如当前的网络连接是否有效
访问Surface Flinger android.permission.ACCESS_SURFACE_FLINGER,Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图
获取WiFi状态 android.permission.ACCESS_WIFI_STATE,获取当前WiFi接入的状态以及WLAN热点的信息
账户管理 android.permission.ACCOUNT_MANAGER,获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限
验证账户 android.permission.AUTHENTICATE_ACCOUNTS,允许一个程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息
电量统计 android.permission.BATTERY_STATS,获取电池电量统计信息
绑定小插件 android.permission.BIND_APPWIDGET,允许一个程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限
绑定设备管理 android.permission.BIND_DEVICE_ADMIN,请求系统管理员接收者receiver,只有系统才能使用
绑定输入法 android.permission.BIND_INPUT_METHOD ,请求InputMethodService服务,只有系统才能使用
绑定RemoteView android.permission.BIND_REMOTEVIEWS,必须通过RemoteViewsService服务来请求,只有系统才能用
绑定壁纸 android.permission.BIND_WALLPAPER,必须通过WallpaperService服务来请求,只有系统才能用
使用蓝牙 android.permission.BLUETOOTH,允许程序连接配对过的蓝牙设备
蓝牙管理 android.permission.BLUETOOTH_ADMIN,允许程序进行发现和配对新的蓝牙设备
变成砖头 android.permission.BRICK,能够禁用手机,非常危险,顾名思义就是让手机变成砖头
应用删除时广播 android.permission.BROADCAST_PACKAGE_REMOVED,当一个应用在删除时触发一个广播
收到短信时广播 android.permission.BROADCAST_SMS,当收到短信时触发一个广播
连续广播 android.permission.BROADCAST_STICKY,允许一个程序收到广播后快速收到下一个广播
WAP PUSH广播 android.permission.BROADCAST_WAP_PUSH,WAP PUSH服务收到后触发一个广播
拨打电话 android.permission.CALL_PHONE,允许程序从非系统拨号器里输入电话号码
通话权限 android.permission.CALL_PRIVILEGED,允许程序拨打电话,替换系统的拨号器界面
拍照权限 android.permission.CAMERA,允许访问摄像头进行拍照
改变组件状态 android.permission.CHANGE_COMPONENT_ENABLED_STATE,改变组件是否启用状态
改变配置 android.permission.CHANGE_CONFIGURATION,允许当前应用改变配置,如定位
改变网络状态 android.permission.CHANGE_NETWORK_STATE,改变网络状态如是否能联网
改变WiFi多播状态 android.permission.CHANGE_WIFI_MULTICAST_STATE,改变WiFi多播状态
改变WiFi状态 android.permission.CHANGE_WIFI_STATE,改变WiFi状态
清除应用缓存 android.permission.CLEAR_APP_CACHE,清除应用缓存
清除用户数据 android.permission.CLEAR_APP_USER_DATA,清除应用的用户数据
底层访问权限 android.permission.CWJ_GROUP,允许CWJ账户组访问底层信息
手机优化大师扩展权限 android.permission.CELL_PHONE_MASTER_EX,手机优化大师扩展权限
控制定位更新 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,允许程序禁用键盘锁
转存系统信息 android.permission.DUMP,允许程序获取系统dump信息从系统服务
状态栏控制 android.permission.EXPAND_STATUS_BAR,允许程序扩展或收缩状态栏
工厂测试模式 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,允许程序安装应用
内部系统窗口 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,管理创建、摧毁、Z轴顺序,仅用于系统
高级权限 android.permission.MTWEAK_USER,允许mTweak用户访问高级系统权限
社区权限 android.permission.MTWEAK_FORUM,允许使用mTweak社区权限
软格式化 android.permission.MASTER_CLEAR,允许程序执行软格式化,删除系统配置信息
修改声音设置 android.permission.MODIFY_AUDIO_SETTINGS,修改声音设置信息
修改电话状态 android.permission.MODIFY_PHONE_STATE,修改电话状态,如飞行模式,但不包含替换系统拨号器界面
格式化文件系统 android.permission.MOUNT_FORMAT_FILESYSTEMS,格式化可移动文件系统,比如格式化清空SD卡
挂载文件系统 android.permission.MOUNT_UNMOUNT_FILESYSTEMS,挂载、反挂载外部文件系统
允许NFC通讯 android.permission.NFC,允许程序执行NFC近距离通讯操作,用于移动支持
永久Activity android.permission.PERSISTENT_ACTIVITY,创建一个永久的Activity,该功能标记为将来将被移除
处理拨出电话 android.permission.PROCESS_OUTGOING_CALLS,允许程序监视,修改或放弃播出电话
读取日程提醒 android.permission.READ_CALENDAR,允许程序读取用户的日程信息
读取联系人 android.permission.READ_CONTACTS,允许应用访问联系人通讯录信息
屏幕截图 android.permission.READ_FRAME_BUFFER,读取帧缓存用于屏幕截图
读取收藏夹和历史记录 com.android.browser.permission.READ_HISTORY_BOOKMARKS,读取浏览器收藏夹和历史记录
读取输入状态 android.permission.READ_INPUT_STATE,读取当前键的输入状态,仅用于系统
读取系统日志 android.permission.READ_LOGS,读取系统底层日志
读取电话状态 android.permission.READ_PHONE_STATE,访问电话状态
读取短信内容 android.permission.READ_SMS,读取短信内容
读取同步设置 android.permission.READ_SYNC_SETTINGS,读取同步设置,读取Google在线同步设置
读取同步状态 android.permission.READ_SYNC_STATS,读取同步状态,获得Google在线同步状态
重启设备 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,录制声音通过手机或耳机的麦克
排序系统任务 android.permission.REORDER_TASKS,重新排序系统Z轴运行中的任务
结束系统任务 android.permission.RESTART_PACKAGES,结束任务通过restartPackage(String)方法,该方式将在外来放弃
发送短信 android.permission.SEND_SMS,发送短信
设置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,设置调试程序,一般用于开发
设置屏幕方向 android.permission.SET_ORIENTATION,设置屏幕方向为横屏或标准方式显示,不用于普通应用
设置应用参数 android.permission.SET_PREFERRED_APPLICATIONS,设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍
设置进程限制 android.permission.SET_PROCESS_LIMIT,允许程序设置最大的进程数量的限制
设置系统时间 android.permission.SET_TIME,设置系统时间
设置系统时区 android.permission.SET_TIME_ZONE,设置系统时区
设置桌面壁纸 android.permission.SET_WALLPAPER,设置桌面壁纸
设置壁纸建议 android.permission.SET_WALLPAPER_HINTS,设置壁纸建议
发送永久进程信号 android.permission.SIGNAL_PERSISTENT_PROCESSES,发送一个永久的进程信号
状态栏控制 android.permission.STATUS_BAR,允许程序打开、关闭、禁用状态栏
访问订阅内容 android.permission.SUBSCRIBED_FEEDS_READ,访问订阅信息的数据库
写入订阅内容 android.permission.SUBSCRIBED_FEEDS_WRITE,写入或修改订阅内容的数据库
显示系统窗口 android.permission.SYSTEM_ALERT_WINDOW,显示系统窗口
更新设备状态 android.permission.UPDATE_DEVICE_STATS,更新设备状态
使用证书 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,写入日程,但不可读取
写入联系人 android.permission.WRITE_CONTACTS,写入联系人,但不可读取
写入外部存储 android.permission.WRITE_EXTERNAL_STORAGE,允许程序写入外部存储,如SD卡上写文件
写入Google地图数据 android.permission.WRITE_GSERVICES,允许程序写入Google Map服务数据
写入收藏夹和历史记录 com.android.browser.permission.WRITE_HISTORY_BOOKMARKS,写入浏览器历史记录或收藏夹,但不可读取
读写系统敏感设置 android.permission.WRITE_SECURE_SETTINGS,允许程序读写系统安全敏感的设置项
读写系统设置 android.permission.WRITE_SETTINGS,允许读写系统设置项
编写短信 android.permission.WRITE_SMS,允许编写短信
写入在线同步设置 android.permission.WRITE_SYNC_SETTINGS,写入Google在线同步设置

posted @ 2013-02-18 15:58 小果子 阅读(32911) | 评论 (1)编辑 收藏
Android的 ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的 apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用

可能想到的是合并odex和apk变成apk中包含dex文件的,这样合并后最终apk文件安装在/data/中,而rom存放在 /system/app中,所以最终导致了用户可装在Android手机中的软件会变少,占用系统空间。
  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

        执行完上面这行命令后,会生成一个out 文件夹里面是android123.odex的class文件。出现问题,根据提示可以从rom的 /system/framework 中的**.jar放到pc上的java环境变量中一起生成。

  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打包重新签名即可。
有时候发现别人手机里有一款 apk 挺好,想弄出来装自己手机上,可是却发现那个 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 文件。如果出现问题,比如什么异常,缺少包什么的,就更到 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 小果子 阅读(3000) | 评论 (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环境下自制rom(非linux下使用的版本),包括预root、创建刷机脚本、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目录改名为你当前操作系统用户的名字(即登录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文件,即可出现批处理窗口,然后选择1解包即 可。解压后是一个完整的文件夹,打包的时候将文件夹拖动至dex.bat文件,即可出现批处理窗口,选择2打包即可完成打包,之后生成打包好的.dex文 件

7.APK manager     

  批量处理APK工具       

  下载地址: Apk Manager.rar  

  使用方法:程序本身已经写的很清楚了,不再过多解释

8.draw9patch     

  用于索引png文件修改和打包工具    

  下载地址: 9png.rar  

  使用方法:先用PS等软件处理图片,然后再用9png来处理,最后用X那个软件打包。

9.Java JDK 

  Java环境安装程序,这个必须装,不然以上以下的程序有可能运行不了。     

  下载地址:http://u.115.com/file/bhze9xyf

10.Android-sdk

  安卓SDK这个就不说了,下了选择你需要的API下载       

  下载地址:http://u.115.com/file/clg28r43

11.eclipse   

  最新的Eclipse JAVA编译环境        

  下载地址: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 小果子 阅读(1989) | 评论 (0)编辑 收藏
仅列出标题
共58页: 1 2 3 4 5 6 7 8 9 Last