版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度建材行业品牌推广与营销合作协议2篇
- 三人有限责任公司合伙协议样本:2024年版B版
- 二零二五年房地产代理撤场与物业交接及后续管理协议3篇
- 二零二五年度房屋交易款项支付协议3篇
- 二零二五年度高速路桥梁检测与加固劳务分包服务协议3篇
- 专用2024标准砖采购简易协议文本版B版
- 二零二五年度海运货运环境保护合同模板3篇
- 二零二五版购物中心店铺租赁管理协议2篇
- 二零二五版智能电网设备性能检测合同3篇
- 二零二五年新能源汽车充电桩车位租赁管理协议2篇
- 智慧农业的传感器与智能设备
- 旅游路线规划设计方案
- DB37-T 5097-2021 山东省绿色建筑评价标准
- 五年级上册简易方程练习100题及答案
- MDR医疗器械法规考核试题及答案
- 让学生看见你的爱
- 领导沟通的艺术
- 发生用药错误应急预案
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 绿色贷款培训课件
- 大学生预征对象登记表(样表)
评论
0/150
提交评论