Android101解析与破解资料_第1页
Android101解析与破解资料_第2页
Android101解析与破解资料_第3页
Android101解析与破解资料_第4页
Android101解析与破解资料_第5页
已阅读5页,还剩230页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AndroidlOl

应用

根据开发方式不同,大致分为三种:

・Web应用:通过JS、H5等Web技术实现交互等功能。Web应用可以在移动设备

的Web浏览器中运行,并通过向后台服务器请求Web页面来进行渲染。一个应用

可以有浏览器渲染的版本,也可以作为独立应用的版本。

・原生应用:原生应用具有优良性能和高度可靠性。不需要从服务器获取支持,而

且还能利用安卓系统提高的告诉本地支持,所以原生应用的响应速度很快。但是不

能够跨平台。

・混合应用:使用Web技术(H5、JS等)编写,像原生应用一样在设备上运行。混合

应用在原生容器中运行,利用设备的浏览器引擎在本地渲染HTML,并处理JS。

混合运用能从Web应用到原生运用的抽象层访问设备上的接口,如加速器、摄像

头、本地存储等,而Web应用不能访问这些接口。(常用PhoneGAP、ReactNative

等框架开发)

应用程序沙盒

Android沙箱的核心机制基于:

•标准的Linux进程隔离

•大多数进程拥有唯一的用户ID(UID)

・严格限制文件系统权限

即每个Android应用都处于各自的安全沙盒中,并受以下Android安全功能的保护:

•Android操作系统是一种多用户Linux系统,其中的每个应用都是一个不同的用户。

・默认情况下,系统会为每个应用分配一个唯一的Linux用户ID(该ID仅由系统使

用,应用并不知晓)。系统会为应用中的所有文件设置权限,使得只有分配给该应

用的用户ID才能访问这些文件;

・每个进程都拥有自己的虚拟机(VM),因此应用代码独立于其他应用而运行。

・默认情况下,每个应用都在其自己的Linux进程内运行。Android系统会在需要执

行任何应用组件时启动该进程,然后当不再需要该进程或系统必须为其他应用恢复

内存时,其便会关闭该进程。

ProcessUID10097ProcessUID10120

Android系统沿用了Linux的UID/GID(用户组ID)权限模型,但并没有使用传统的

passwd和group文件来存储用户与用户组的认证凭据,作为替代,Android定义了从名称

到独特标识符AndroidID(AID)的映射表。初始的AID映射表包含了一些与特权用户及系

统关键用户(如system用户/用户组)对应的静态保留条目。Android还保留了一段AID范

围,用于提供原生应用的UID。

从AOSP树的|system/core/include/private/androidfilesystemconfig.h文件中

找到AID的定义:

#defineAID_ROOT0/*传统的unix跟用户*/

#defineAID_SYSTEM1000/*系统服务器*/

#defineAID_RADIO1001/*通话功能子系统,RIL*/#defineAID_BLUETOOTH

1002/*蓝牙子系统*/

#defineAID_SHELL2000/*adbshell与debugshell用户*/

#defineAID_CACHE2001/*缓存访问*/

#defineAID_DIAG2002/*访问诊断资源*/

/*编号3000系列只用于辅助用户组们,表示出了内核所支持的Android权能*/

#defineAID_NET_BT_ADMIN3001/*蓝牙:创建套接字*/

#defineAID_NET_BT3002/*蓝牙:创建sc。、rfcomm或12cap套接字*/

#defineAID_INET3003/*能够创建AF_INET和AF_INET6套接字*/

#defineAID_NET_RAW3004/*能够创建原始的INET套接字*/

#defineAID_APP10000/*第一个应用用户*/

ftdefineAID_ISOLATED_START99000/*完全隔绝的沙箱进程中UID的开始编号*/

#defineAID_ISOLATED_END99999/*完全隔绝的沙箱进程中UID的末尾编号*/

#defineAID_USER100000/*每一用户的UID编号范围偏移*/

除了AID,Android还使用了辅助用户组机制,以允许进程访问共享或受保护的资源。除

了AID,Android还使用了辅助用户组机制,以允许进程访问共享或受保护的资源。例

如,|sdcardrw|用户组中的成员允许进程读写匹card|目录,因为它的加载项规定了

哪些用户组可以读写该目录。

不是必需的。例如,AIDD_SDCARD_RW映射至sdcardjw,但是它仅仅用作一个辅助用

户组,而不是系统上的UID。

除了?来实施三件系统访问,辅助用号组还会尊用于向进程颦予额外的权限。例

如,|AID_INET|用户组允许用户打开Q—INETJ和3_加丁中套接字。在某些情况下,

权限也可能以Linux权能的形式出现,例如,蔡ET_A湍御用户组中的成员授

予|CAPNETADMIN|权能,允许用户配置网络接口和路由表。

Android沙箱关键所在:在应用执行时,它们的UID、GID和辅助用户组都会被分配给新

创建的进程。在一个独特UID和GID环境下运行,使得操作系统可以在内核中实施底层

的限制措施,也让运行环境能够控制应用之间的交互。

Android系统实现了最小权限原则。换言之,默认情况下,每个应用只能访问执行其工作

所需的组件,而不能访问其他组件,这样便能创建非常安全的环境,在此环境中,应用无

法访问其未获得权限的系统部分。不过,应用仍可通过一些途径与其他应用共享数据以及

访问系统服务:

•通过使用应用包中的一种特殊指令,应用也可以共享同一Linux用户ID(UID),

在此情况下,二者便能访问彼此的文件。为节省系统资源,也可安排拥有相同用户

ID的应用在同一Linux进程中运行,并共享同一VM。应用还必须使用相同的证

书进行签名。

・应用可以请求访问设备数据(如用户的联系人、短信消息、可装载存储装置(SD

卡•)、相机、蓝牙等)的权限。用户必须明确授予这些权限。

如NFC的APP(AndroidManifest.xml):

<manifestxmlns:android=n/apk/res/android"

package="com.android.nfc”

android:sharedUserId="android.uid.nfc">

一个应用对应一个UID

每一个已安装的应用都会以不同的用户身份运行,以回开头。

adb-dshellp5寸

jvzwarcncyd-

uoZa258863593431976446820SyS_epoll_wait0Scom.google.android.packageinstaller

root11311260worker_thread0S[kworker/5:lH]

root11312200worker_thread0S[kworker/6:1H]

root11313260worker_thread0S[kworker/7:1H]

u0_al411828593432147648740SyS_epoll_watt0Scess.media

root12234200irq^thread0S[irq/6O6-f98a490]

root12272200worker_thread6S[kworker/0:5]

shell131061170801076poll_schedule_timeout0Sadbd

U0_all0131675934750366171596SyS_epoll_wait0Scon.tencent.mm:push

u0_a9813308593431828848692SyS_epoll_watt0Sme.twrp.twrpapp

root14572200worker_thread&S[kworker/3:3]

root15133260worker_thread0S[kworker/1:1]

U0_a3415207594174811674048SyS_epoll_wait0Scom.android.vending

root15822200worker_thread0S[kworker/3:l]

U0_al0815975593434467269360SyS_epoll_wait0Scom.termux

root1602920Qworker_thread0S[kworker/6:6]

root16033200worker_thread0S[kworker/4:0]

root1605©266worker_thread6S[kworker/5:6]

root16071200worker_thread0S[kworker/0:0]

root16178200worker_thread0S[kworker/2:6]

root16248200worker_thread6S[kworker/l:6]

root16892200worker_thread0S[kworker/ul7:4]

root17238200worker_thread6S[kworker/ul7:1]

root17281200worker_thread0S[kworker/ul6:2]

root17297260worker_threadQS[kworker/ul7:3]

root17315200worker_thread0S[kworker/ul6:3]

root17316200worker__thread0S[kworker/0:2]

root17335200worker_thread6S[kworker/ul7:5]

root17336200worker_thread0S[kworker/ul7:6]

root17383200worker_thread0S[kworker/ul6:1]

root17386200worker_thread0S[kworker/0:l]

uO_a9017399593436177276276SyS_epoll_wait0Scom.google.android.apps.photos

u0_a6117423594167057646056SyS_epoll_wait0Scom.android.chrome

U0_al717451593431439243812SyS_epoll_wait0Scess.gapps

U0_a2617474593431273639148SyS_epoll_watt0Scom.google.android.partnersetup

u0_a2417496593434242855860SyS__epoll_wait0Scom.google.android.dialer

u0_a2317509593433383662124SyS_epoll_wait0Scom.google.android.contacts

U0_a217537593432036451584SyS_epoll_wait0Scess.acore

u0_a8217599593440342880780SyS_epoll__watt0Scom.google.android.apps.maps

U0_a3817617593431751640304SyS_epoll_wait0Scom.google.android.storagemanager

u0_a9917643593438156458906SyS_epoll_wait6Scom.topjohnwu.magisk

U0_a991766817643147602700untx_stream_recvmsg0Ssu

root1767339689041964pipe_waitQSsh

u0_a8517753593442321283086SyS_epoll_watt6Scom.google.android.apps.messaging

root178482Q0worker_thread0S[kworker/ul7:2]

root17849200worker_thread0S[kworker/ul7:7]

U0_a40046178785981367828567240Rdex2oat

shell1788013166104881932076de8c6f20RDS

查看uid,可知上述的用户名分别对应了一个从1()000开始的UID,|u0a|后面的数字加

上10000所得的值,即是UID:

cat/data/system/packages.xml

</shared-user>

<shared-username="android.utd.calendar"userld="ie003">

<stgscount="l">矍、

<certlndex="9"/>

</stgs>

<perms>

<ttemnane="androtd.permission.USE_CREDENTIALS"granted="true"flags="0"/>

<ttemnane="androtd.permission.MANAGE_ACCOUNTS"granted="true"flags="0"/>

<ttenna(ne=nandrotd.permission.WRITE_SYNC_SETTINGS"granted="true"flags="。"/>

<ttemnane="android.permission.RECEIVE_BOOT_COMPLETED"granted="true"flags="O"/>

<ttemname=Bandrotd.permission.SUBSCRIBED_FEEDS_READ"granted="true"flags="0"/>

<ttenname='*androtd.permission.SUBSCRIBED_FEEDS_WRITE"granted="true"flags=M0"/>

<ttemnane="android.perntsston.INTERNET"granted="true"flags="0"/>

<itemname="android.permission.GET_ACCOUNTS_PRIVILEGED"granted="true"flags="e"/>

<itennane="androtd.permission.READ_SYNC_STATS"granted="true"flags="0"/>

<itemnane="android.permission.READ_SYNC_SETTINCS"g「anted="t「ue"flags="0M/>

<itennane="android.pernission.WAKE_LOCK"granted="true"flags="0"/>

<ttennane=Mandroid.pernission.UPDATE_APP_OPS_STATS-granted="true"flags="0,'/>

</perns>

</shared-user>

<shared-usernane="com.ternux"userlds'lOies>>

<sigscount="l">♦、一

<certtndex="35"/>

</stgs>

<perms>

<ttemname="androtd.permtsston.REQUEST_ICNORE_BATTERY_OPTIMIZATIONS"granted="true"flags="6"/>

<ttemnane="androtd.permission.INTERNET"granted="true"flags="0"/>

<ttemname="androld.permission.ACCESS_NETWORK_STATE"granted="true"flags="0"/>

<ttemname="androtd.permission.VIBRATE"granted="true"flags="e"/>

<ttemname="androtd.permission.WAKE_LOCK"granted="true"flags="e"/>

</perns>

</shared-user>

<shared-username="com.android.utd.omadn.service"userId="10010n>

<stgscount=nl">4

<certindex="l"/>

</stgs>

<perns>

<itemnane="androtd.permission.WRITE_SETTINGS"granted="true"flags="0"/>

<itennane="con.android.pernission.READ_OMADM_SETTINCS"granted="true"flags="0"/>

<itemnane="android.permission.CHANGE_NETWORK_STATE"granted="true"flags="e"/>

<itemnane=Mandroid.pernission.INTERNET"granted="true"flags=M6"/>

<itennane="con.android.pernission.CONNMO_SETTINGS"granted—'true"flags="6"/>

<itenname=Handroid.permission.WRITE_SECURE_SETTINGS"granted="true"flags-。"/>

______________〈Itemnapie="com.android.permission.wClTE—OMADM—SETTINGS-granted="true"flags=W/>

应用沙盒

每一个应用在「data/data|文件夹中都有各自存储数据的入口。每个应用的目录都归自

己所属有,其他应用不能读写这些目录,从而使得应用的数据独立存储在各自的沙盒环境

中。

langler:/data/data#Is-lah

total610K

drwxrwx--x152systemsystem12K2026-01-0708:36

drwxrwx--x41systemsystem4.OK2018-01-0120:19..

drwx4systemsystem4.0K1970-01-0409:36android

drwxr-x--x4u6_a84u6_a844.0K1976-01-0409:36android.autotnstalls.config.google.nexus

drwx10ue二al©4u©_al044.OK2020-01-0708:53cn.qssq666.wechat.plus

drwx4u0_alu0_al4.0K1976-01-04©9:36com.android.backupconftrm

drwx4u。二a52ue[a524.0K1970-01-04©9:36com.android.bips

drwx4bluetoothbluetooth4.OK1970-01-0409:36com.android.bluetooth

drwx4u0_a49u0_a494.0K1970-01-0409:36com.android.bluetoothmtdlservice

drwx4u6_a50u0_a504.0K1970-01-04©9:36com.android.bookmarkprovtder

drwx4u0_a2U0_a24.OK1970-01-0409:36com.android.calllogbackup

drwx4uQ_a51U0_a514.OK1970-01-0409:36com.android.captiveportallogin

drwx4u0_a4u0_a44.0K1970-01-0409:36com.android.carrterconftg

drwx4ue二a55u*a554.OK1976-01-0409:36com.android.carrierdefaultapp

drwx4u0_a8u0_a84.OK1970-01-0409:36com.androtd.cellbroadcastreceiver

drwx4u0_a56U0_a564.0K1970-01-0409:36com.android.certinstaller

drwx14u6_a61U0_a614.OK2020-01-0708:53com.android.chrome

drwx4u。二a59U0_a594.OK1970-01-0409:36com.paniondevicemanager

drwxr-x--x4u6_a9u0_a94.0K1976-01-0409:36com.android.connectivity.metrics

drwx4u6_a58uO_a584.0K1970-01-0409:36com.android.cts.ctsshin

drwx4uO^alZu©Zal24.OK1970-01-0409:36com.android.cts.prtv.ctsshim

drwx4u0_allu0_all4.OK1970-01-0409:36com.android.defcontatner

drwx6uO2alSu。二al54.OK2018-01-0120:20com.android.documentsui

drwx4U0_a47u6_a474.0K1976-01-0409:36com.android.dreams.basic

drwx4U0_a62U0_a624.OK1970-01-0409:36com.android.egg

drwx4U0_al8u0_al84.OK1970-01-0469:36com.android.emergency

drwx4u6_al6U0_al64.0K1970-01-04©9:36com.android.externalstorage

drwx-4U0_a65U0_a654.0K1970-01-0469:36com.androtd.facelock

drwx5u0_a29uo[a294.0K1970-01-6409:36com.android.hotwordenrollment.okgoogle

drwx5U0_a28U0_a284.0K1970-01-0409:36com.androtd.hotwordenrollment.tgoogle

drwx5u0_a3Ou0_a304.0K1970-01-0409:36com.androtd.hotwordenrollment.xgoogle

drwxr-x--x9u0__a74U0_a744.0K2018-01-0120:35com.android.htmlvtewer

drwx4systemsystem4.OK1970-01-0409:36com.androtd.huawet.htddenmenu

drwx4systemsystem4.0K1970-01-0409:36com.android.inputdevices

drwx5systemsystem4.0K2018-01-0120:32com.androtd.keychain

drwx4systemsystem4.0K1970-01-0409:36com.android.location.fused

drwx-5u0_a31u0_a314.0K1970-01-0409:36com.androtd.managedprovtsiontng

drwx4radioradio4.OK1970-01-0469:36com.android.mms.service

drwx5u0_a14u0_al44.OK2018-01-0120:20com.androtd.mtp

drwx4u©Za32u0~a324.OK1976-01-0409:36com.android.mustcfx

drwx6nfcnfc4.0K1970-01-0409:36com.android.nfc

drwxr-x--x4u6_al6uO_al04.0K2020-01-0708:53com.androtd.omadm.service

drwx4u0_a80uO_a804.0K1970-01-0409:36com.android.pacprocessor

drwx5radioradio4.OK1970-01-0409:36com.androtd.phone

drwx--6uOa89uOa894.0K1970-01-0469:36com.android.printspooler

Android权限

Android的权限模型是多方面的,有API权限、文件系统权限、IPC(InterProcess

Communication)权限。在很多情况下,这些权限都交织在一起,一些高级权限会后退映

射到低级别的操作系统权能,这可能包括打开套接字、蓝牙设备和文件系统路径等。

•管道(Pipe)及命名管道(namedpipe)

•信号(Signal)

■报文(Message)队列(消息队列)

•共享内存

•信号量(semaphore)

・套接口(Socket)

要手定应用用户的权限和隼助用户组,Android系统会处理在应用当

的AndroidManifest.xml文件中指定的高级权限。应用的权限由PackageManager在

安装时从应用的Manifest文件中提取,并存储在/data/system/packages.xml文件中。

这些条目然后会在应用进程的实例化阶段用于向进程授予适当的权限(比如设置辅助用户

组GID)。

:?xnlverston>'1.8'encoding*'utf-8'standalone*'yes'?>

:packages〉

〈versionsdkVerstonss"27"databaseverston="3"flngerprlntnpoogle/angler/angler:8.1.O/OPM7.181265.6”/seB618e:user/release-keys"/>

<verstonvoluReUut,d«-prt.R«ry_physt.cal"sdkVerstonc*27*databaseVerstone"27*flngerprtntc*google/angler/dngler:8.1.0/0PM7.181205.Ml/5080180:user/release-keys*/>

<pernts$ton-trees*

n«ne»"con.google.android.googlcapps.perntsston.COOGLE_AUTH"p4ckagc-*con.google.android.gsf"/>

«/p«rRisstofl-trecs>

<perntsstons>

<tte*iname-*con.google.android.QHS.«uth.apt.phone.perRtsston.SENO*package--con.google.android.gms'protectlona*2*/>

<ttenn*me»'«ndrotd.perntsston.REAl_CET_TASKS'pack“e・"androtd"pfotectlon»w18"/>

<tte«n«Re=*ar>drotd.perRtsslon.ACCESS_CACHE_FILE5YSTEMwpackage="androtd*protections*18'/>

<tte«n»ne="ar>drol.d.pernt5ston.REMOTE_AUOIO_PLAYBACK*packages"android*protection="2'/>

<ttennane="ar»drotd.perntsston.DOWNLoRjnTiioUT_NOTIFICAn(»rviders.downloads"/>

n«ne>"COR.google.android.gooolequlckse4rchbox.perntsston.LENSVIEW_BROADCAST"pAckage-'coR.google.android.goo^lequlcksedrchbox*protection**?*/>

<ttennane«*co«.google.android.apps.photos.^rHtsslon.caD^ESSAGE"package--com.google.android.apps.photos"protectlon-*2*/>

<tte«nanes*androt<l.perntsslon.RECISTER_WINDOW_HANACER_LlSTENERS,*package=*androtd*protectton»*2,,/>

<ttennames"android.perntsston.XNTENT_FiLTER_VERIFICATIOH_ACENT*packages'androtd"protectton»-18"/>

<tte«nane-'androtd.perntsston.BINO_INCALL_SERVICE*package-'androld"protectton■"18*/>

n«ne="«ndrol.d.perntiston.PROVIOE_RESOLVER_RANKER_SERVICE"p«ck«9es*android"protectlon«*18"/>

<tte«nane=*'coR.google.android.gms.trustagent.framework.nodel.OATA_CHANCE_NOTIFICATION*package:"con.google.android.gns'protectton="2"/>

<lte«nant3*androtd.perRtssion.WRITE_SETTINCS,package="androtd*protections-1218'/>

<ttennane-"coa.Qooole.android.permission.WRITE.GMAIU,package*'con.google.android.QH"protection-””/>

<lte«n«ne-"co«.flooflle.arKjrotd.vending.vertfter.ACCESS.VER1FIER"packdQe*-com.android.vending•protectton-*2*/>

<ltennane="C8.google.android.ftnsky.pernlsston.B1NO_CET_INSTALL_REFERRER_SERVICE*package**con.android.vending"/>

<ttennane="androtd.perRtsston.READ_SMS"package="androtd"protectton«*l*/>

<tte*«names-android.perntsston.CONTROL_KEYGUARO'package="androld.protectton»"2"/>

<ttenane>>android.perntsston.REAO_WAlLPAPER_INTERNAL-packagea'androtd*protectlon»*18*/>

<ttc«n«ne="COR.google.android.calendar.pernisston.C20_HESSACE"p«ckage="con.google.android.calendar-protection=-2"/>

<ite«nane="ar>drotd.pernisston.CONFICUfiE_WIFI_DISPLAY"packages"android'protections*2*/>

<tte«name*'android.perntsston.CONFICURE_OISPLAY_COLOR_MOOE*pdckage="androtd*protectton«-2,/>

<ttenn»ne-'androtd.perntsston.ACCESS_WIMAX_STATE-package-'androtd"/>

<ttennancw*androt.<l.p«rHts»ton.SET_iNPUT_CAUB«ATlo»Cpackage."android-protectton-"2'/>

<ttennane^'androt.d.perRtsst.on.RECOVERY''packd9e^'androld"protection118”/>

<tte«nane="androtd.pernisston.TEMPORARY_ENABLE_ACCESSIBILITY,package=*androtd*protectton="2*/>

vttennane»"COR.google.android.talk.perntsston.C2D_MESSACE*packages'con.google.android.talk*protectton**2*/>

<ltennane»"android.pcrntsston.SET_PROCESS_LINIT*p4Ck«ge3*«ndrold*protectton«*50*/>

<itewnane="co«.gooflle.android.9Oogleapps.perntssion.G00CLE_AUTH.sitc»wips''packages"con.google.android.gsf,protectiona*2*/>

<ttennanex*cofi.qualcom.pernission.ATCMO"packages*coR.qualcoflR.atfwd*protections,"18"/>

<ttennane**co«.google.androtd.googlequtcksearchbox.perHtsston.C2D_MESSACfpackage>>con.google.android.googlequtcksearchbox*protection-*?*/>

<ttenn*ne--«ndrotd.perRts$ton.REAO_LOMPAN_CREOENTlAL"packagea'android*protectton«*18*/>

nane--co«.google.android.googlcapps.pcrntsston.GOOCLE_AUTH.panor«Rto*package«*con.google.android.gsf*typ«»'dyna»ilc*lab«l»*Panor4flto*/>

<ttennane="androtd.perntsston.FRAME_STATS'packagea'androld"protectton=w2"/>

<ttennanes*cofi.google.android.gn.perntsston.BAOADCAST_INTERNAL'package^"con.google.android.gn*protecttona,a*/>

nane«-co«.google.android.9ns.perntsston.APPINOEXINC"packa^eo'coH.google.android.gns"protectton»"2'/>

n«nea*androld.perntssion.READ_CALENOAR*packa^o-android"protectton»,lw/>

<ltennanes'android.perRlssion.BRICK"packages"androtd,protection*"2"/>

vttennanes*'androtd.perntssion.REAO_CALL_LOC"packages-android-protecttona-1'/>

<ttennane-*cofi.google.androtd.c2dn.perntsston.RECEIVE*pdckage-acon.google.androtd.gsf*/»

■cttEnane."«ndrotd.p«fnt$ston.BINO_PRINT_RECOMMENOATION_SERVICfp«ckage.*4n<jrotd'protectton--Z"/>

v“e«n«Re="co«.google,androtd.videos,perntsston.MOCK_CC>i_RECEIVE*packages"con.google.androtd.videos"protection-、*/>

vttennane="android.pernlsston.ACCESS_FINE_LOCATIOWpackage=*androtd*protectton="4©97"/>

vttemn«Re="android.pernlsston.RESTART_PACKACES-packages"androld*/>

<tten«ne«-androtd.perRt*ston.STORACE_INTERNAL*pACkage*"androtd*protection""2"/>

<tte«nano'androtd.perntsslon.USECREDENTIALS*D4ckaae>>android*/>

l/data/systen/packaoes.x而

权限至用户组的映射表存储在/e限/permissions/platform.xml|文件中。它被用来确定

应用设置的辅助用户组GID。

<?xmlve「ston="l.。"encodtng="utf-8"?>

<!--Copyright(C)2008TheAndroidOpenSourceProject

LicensedundertheApacheLicense,Version2.0(the"License");

youmaynotusethisfil

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论