рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдЖрдЬ рдореИрдВ рдХреЛрд░ рд╕реЗ рдереЛрдбрд╝рд╛ рдКрдкрд░ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗред system.img, userdata.img, рдФрд░ cache.img рдЖрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред
рд╣рд░ рдХреЛрдИ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА
рдЗрд╕ рд╡рд┐рд╖рдп рд╕реЗ рдореЗрд░реЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓ рдмрд╛рддреЗрдВред рдХреЛрд░ рд╕реНрддрд░
- рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓ рдмрд╛рддреЗрдВред рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди, рднрд╛рдЧ 1
- рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓ рдмрд╛рддреЗрдВред рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди, рднрд╛рдЧ 2
- рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓ рдмрд╛рддреЗрдВред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ред рдмрд╛рдЗрдВрдбрд░ рдЖрдИ.рдкреА.рд╕реА.
рджреЗрд╢реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ
рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдВрддрд░рд┐рдХреНрд╖ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ Dalvik рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдмрд╛рд╣рд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рдЗрдирдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдХрд┐ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ, рдЯреВрд▓рдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ, рд╕рд╛рде рд╣реА рдХреБрдЫ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реЗрд▓ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдХрд╣рд╛, рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╕рднреА рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, Android рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╛рдиреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рд╛рдЗрд▓) рдореЗрдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕рдиреЗ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИ - рд╕реНрд╡рд╛рдореА (рд╕реНрд╡рд╛рдореА) - рдФрд░ рдХреМрди рд╕рд╛ рдореБрдЦреНрдп рд╕рдореВрд╣ (рд╕реНрд╡рд╛рдореА рд╕рдореВрд╣) рд╕реНрд╡рд╛рдореА (рд╕реНрд╡рд╛рдореА) рдХрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдХреА рдУрд░ рд╕реЗ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдПрдХ рдореБрдЦреНрдп рд╕рдореВрд╣ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╣ рдЕрдиреНрдп рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╕рджрд╕реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди (rwxrwxrwx рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкрдврд╝ / рд▓рд┐рдЦ / рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рд╛рдЗрд▓), рддреЛ рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрд╡рд╛рдореА (рд╕реНрд╡рд╛рдореА) рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рд╛рдореА рд╕рдореВрд╣ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдмрд╛рдХреА рд╕рдм рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╢реБрд░реВ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдлреЛрди рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдЬреЛ рдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреАрдЬреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдФрд░ рдЬрд┐рд╕реЗ рд╣рдо рдЧрд▓рдд рд╣рд╛рдереЛрдВ рдореЗрдВ рджреЗрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХреА рдЧрдИ рдереАред рдЗрд╕рд▓рд┐рдП, рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП - рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рдерд╛)ред рджреВрд╕рд░реЗ, рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ, рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдФрд░ рдЙрдирдХреЗ рдпреВрдЖрдИрдбреА (рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓реЛрдЧреЛрдВ рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХреНрдпреЛрдВ рдХреА рдЬрд╛рддреА рд╣реИ)ред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлрд╛рдЗрд▓
рд╕рд┐рд╕реНрдЯрдо / рдХреЛрд░ / рдЗрди
/ рдкреНрд░рд╛рдЗрд╡реЗрдЯ / android_filesystem_config.h рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд░реВрдЯ рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
0 , рдФрд░
рд╕рд┐рд╕реНрдЯрдо -
1000 рд╣реИ ред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдпреВрдЖрдИрдбреА) рдХреА рдУрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЗрд╕ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдпреВрдЖрдИрдбреА (рдХреЙрд▓рд┐рдВрдЧ_рдкреНрд░реЛрд╕реЗрд╕) == рдпреВрдЖрдИрдбреА (рдЬрд┐рд╕реЗ_рдкреНрд░реЛрд╕реЗрд╕) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛ Android рдкрд░ рдЪрд▓рддреА рд╣реИ -
init - root (UID == 0) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдУрд░ рд╕реЗ рднреА рд╢реБрд░реВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рддреЛ рдпрд╣ рд╢рд╛рдпрдж рд╣реЛрддрд╛ред рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╕рд╛рде рд╣реА рдХреБрдЫ рдХреНрд╖рдорддрд╛рдУрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧ) рдХреА рдУрд░ рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЙрдирдХреЗ рдпреВрдЖрдИрдбреА рдХреЛ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВред рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ, рдЬрдм рдПрдХ
init.rc рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбреЗрдорди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдХрд┐рди рд╕рдореВрд╣реЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВред
... service console /system/bin/sh class core console disabled user shell group log ... service servicemanager /system/bin/servicemanager class core user system group system critical onrestart restart zygote onrestart restart media onrestart restart surfaceflinger onrestart restart drm ... service media /system/bin/mediaserver class main user media group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc ioprio rt 4 ...
рдЗрди рдбреЗрдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЕрдм рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рд╕рд┐рд╕реНрдЯрдо, рдбреЗрдЯрд╛ рдФрд░ рдХреИрд╢
рдореИрдВрдиреЗ рдХрдИ рдмрд╛рд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдШреЛрд╖рдгрд╛ рдХреА рд╣реИ рдХрд┐ рдХреЛрдИ рдпрд╣ рд╕реЛрдЪреЗрдЧрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
System.img ,
userdata.img рдФрд░
cache.img Android рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпреЗ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдпреВрдЖрдИрдбреА рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рд╣рдо рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ
рд╕рд┐рд╕реНрдЯрдо / рдХреЛрд░ / рдирд┐рд░реНрджрд┐рд╖реНрдЯ
/ рдирд┐рдЬреА / android_filesystem_config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред рдПрдХреНрд╕реЗрд╕ рд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА (android_dirs []] рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (android_files []) рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
... struct fs_path_config { unsigned mode; unsigned uid; unsigned gid; uint64_t capabilities; const char *prefix; }; static const struct fs_path_config android_dirs[] = { { 00770, AID_SYSTEM, AID_CACHE, 0, "cache" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data/app" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data/app-private" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data/dalvik-cache" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data/data" }, { 00771, AID_SHELL, AID_SHELL, 0, "data/local/tmp" }, { 00771, AID_SHELL, AID_SHELL, 0, "data/local" }, { 01771, AID_SYSTEM, AID_MISC, 0, "data/misc" }, { 00770, AID_DHCP, AID_DHCP, 0, "data/misc/dhcp" }, { 00775, AID_MEDIA_RW, AID_MEDIA_RW, 0, "data/media" }, { 00775, AID_MEDIA_RW, AID_MEDIA_RW, 0, "data/media/Music" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/bin" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/vendor" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/xbin" }, { 00755, AID_ROOT, AID_ROOT, 0, "system/etc/ppp" }, { 00777, AID_ROOT, AID_ROOT, 0, "sdcard" }, { 00755, AID_ROOT, AID_ROOT, 0, 0 }, }; static const struct fs_path_config android_files[] = { { 00440, AID_ROOT, AID_SHELL, 0, "system/etc/init.goldfish.rc" }, { 00550, AID_ROOT, AID_SHELL, 0, "system/etc/init.goldfish.sh" }, { 00440, AID_ROOT, AID_SHELL, 0, "system/etc/init.trout.rc" }, { 00550, AID_ROOT, AID_SHELL, 0, "system/etc/init.ril" }, { 00550, AID_ROOT, AID_SHELL, 0, "system/etc/init.testmenu" }, { 00550, AID_DHCP, AID_SHELL, 0, "system/etc/dhcpcd/dhcpcd-run-hooks" }, { 00440, AID_BLUETOOTH, AID_BLUETOOTH, 0, "system/etc/dbus.conf" }, { 00444, AID_RADIO, AID_AUDIO, 0, "system/etc/AudioPara4.csv" }, { 00555, AID_ROOT, AID_ROOT, 0, "system/etc/ppp/*" }, { 00555, AID_ROOT, AID_ROOT, 0, "system/etc/rc.*" }, { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app/*" }, { 00644, AID_MEDIA_RW, AID_MEDIA_RW, 0, "data/media/*" }, { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app-private/*" }, { 00644, AID_APP, AID_APP, 0, "data/data/*" }, { 00755, AID_ROOT, AID_ROOT, 0, "system/bin/ping" }, { 02750, AID_ROOT, AID_INET, 0, "system/bin/netcfg" }, { 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/su" }, { 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/librank" }, { 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/procrank" }, { 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/procmem" }, { 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/tcpdump" }, { 04770, AID_ROOT, AID_RADIO, 0, "system/bin/pppd-ril" }, { 00750, AID_ROOT, AID_SHELL, (1 << CAP_SETUID) | (1 << CAP_SETGID), "system/bin/run-as" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/*" }, { 00755, AID_ROOT, AID_ROOT, 0, "system/lib/valgrind/*" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/xbin/*" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/vendor/bin/*" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin/*" }, { 00755, AID_ROOT, AID_ROOT, 0, "bin/*" }, { 00750, AID_ROOT, AID_SHELL, 0, "init*" }, { 00750, AID_ROOT, AID_SHELL, 0, "charger*" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin/fs_mgr" }, { 00640, AID_ROOT, AID_SHELL, 0, "fstab.*" }, { 00644, AID_ROOT, AID_ROOT, 0, 0 }, }; ...
рдФрд░
рд╕реНрдерд┐рд░ рдЗрдирд▓рд╛рдЗрди vs fs_config рдлрд╝рдВрдХреНрд╢рди (const char * path, int dir, unsigned * uid, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд * gid, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд * рдореЛрдб, uint64_t * рдХреНрд╖рдорддрд╛рдПрдВ) , рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рдореА, рд╕реНрд╡рд╛рдореА рд╕рдореВрд╣, рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди
рдЫрд╡рд┐ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП
рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдлрд╝реНрд▓реИрдЧ (рд╕реЗрдЯрд┐рдб рдФрд░ рд╕реЗрдЯрдЧрд┐рдб) рд╕реЗрдЯ
рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕рд┐рд╕реНрдЯрдо / xbin / su" рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ 06755 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдкрд╣рд▓реЗ 6 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ рд╕реЗрдЯ рдпреВрдЬрд░ рдЖрдИрдбреА (4) рдФрд░ рдЧреНрд░реБрдк рдЖрдИрдбреА (2) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЭрдВрдбрд╛ред рдЗрди рдЭрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕реНрд╡рд╛рдореА рд╕рдореВрд╣ (рд╕реНрд╡рд╛рдореА рдХреЗ рд╕рдореВрд╣) рдХреЗ рд╕реНрд╡рд╛рдореА (рд╕реНрд╡рд╛рдореА) рдХреЗ рд╕реНрддрд░ рддрдХ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдпреВрдЖрдИрдбреА рдФрд░ рдЬреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХреБрдЫ рдореВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрд╕реА UID рдФрд░ GID рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рдЗрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдерд╛ред рдЗрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдЭрдВрдбреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдорд╛рд▓рд┐рдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рд▓рд┐рдХ AID_ROOT (рд░реВрдЯ) рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рд╕рд┐рд╕реНрдЯрдо / рдПрдХреНрд╕реНрдЯреНрд░рд╛ / su / su.c рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ:
int main(int argc, char **argv) { ... int uid, gid, myuid; ... if(setgid(gid) || setuid(uid)) { ... } ... }
рдпрд╛рдиреА
setuid рдФрд░
setgid рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдП рдереЗ, рддреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрд╡рд╛рдореА рдФрд░ рд╕реНрд╡рд╛рдореА рд╕рдореВрд╣ рдХреА рдУрд░ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрдкрд░рдпреБрд╕рд░ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рд╡рд╣ рдЬреЛ рдЪрд╛рд╣реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ :) рдРрд╕реА рдЕрд░рд╛рдЬрдХрддрд╛ рд╣рдореЗрд╢рд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдиреЗ
рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреАред рдЪреВрдВрдХрд┐ рд░рди-рдЕрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рднреА рд╕реБрдкрд░рдпреБрдЬрд░ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдУрд░ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реИрд╕реЗ, рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ - рдПрдВрдбреНрд░реЙрдЗрдб 2.3.x рдореЗрдВ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ (рдЬреИрд╕реЗ рд╕реБ) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реАрдорд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдпреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реБрдкрд░рдпреБрд╕рд░ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдмрд╣реБрдд рдмрд╛рд░ рдпреВрдЖрдИрдбреА рд╕рддреНрдпрд╛рдкрди рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
... #include <private/android_filesystem_config.h> ... int main(int argc, char **argv) { struct passwd *pw; int uid, gid, myuid; /* Until we have something better, only root and the shell can use su. */ myuid = getuid(); if (myuid != AID_ROOT && myuid != AID_SHELL) { fprintf(stderr,"su: uid %d not allowed to su\n", myuid); return 1; } ... }
рдпрд╛рдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╣рд▓реЗ рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ
рдЧреЗрдЯреНрдпреВрдб () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдЙрди рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓
"рд╕рд┐рд╕реНрдЯрдо" рдФрд░
"рд░реВрдЯ" рдХреА рдУрд░ рд╕реЗ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ
рд╕реБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдпрд╣ рдбрд┐рд╕рд╛рдЗрдб рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд┐рд╡ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рд╕реНрддрд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдореИрдВ рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдиреБрдорддрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рд╡рд░реНрддрдорд╛рди рд▓реЛрдб рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдирд╛ рдХрдм рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВ рдкрд░рд┐рд╡рд░реНрдзрди рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЦреБрд╢ рд░рд╣реВрдВрдЧрд╛ред
PS рд╣рдореЗрдВ
DevConf @ mobi рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдПрдХ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛрдЧреА рдЬреЛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ?
рд╕рдВрджрд░реНрдн
- рдХрд░реАрдо рдпрд╛рдЧрдореЛрд░ рджреНрд╡рд╛рд░рд╛ "рдПрдВрдмреЗрдбреЗрдб рдПрдВрдбреНрд░реЙрдЗрдб"
- рдорд╛рд░реНрдХреЛ рдЧрд╛рд░реНрдЬреЗрдВрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдЕрдВрдбрд░рдкрд┐рдирд┐рдВрдЧреНрд╕
- рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣
- рдЫрд╡рд┐ рд╡рд┐рдиреНрдпрд╛рд╕
- SUID
- рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди