Shutdown

рей.рек
рез.реореи┬ард╣ рдкрд░реАрдХреНрд╖рдг
рел┬ард▓рд╛рдЦ+
рдбрд╛рдЙрдирд▓реЛрдб
рдЖрд╢рдп рд░реЗрдЯрд┐рдВрдЧ
рдкреНрд░рддреНрдпреЗрдХрдЬрдг
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ

рдпрд╛ рдЕтАНреЕрдкрд╡рд┐рд╖рдпреА

рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдЬреЛрдЦрдореАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рд╛!
* рдХреЗрд╡рд│ рдореВрд│ рдлреЛрдирд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ! *
рдЖрдкрд▓рд╛ рдлреЛрди рддрд╛рдмрдбрддреЛрдм рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░реВрдЯ рдЕреЕрдк.

* рдПрдЪрдЯреАрд╕реА рдлреЛрдирд╕рд╣ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА *

рд╣реЗ рдЕреЕрдк рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЦрд╛рддреНрд░реАрдиреЗ рд╡рд┐рдЪрд╛рд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ 'reboot -p' рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдЖрдкрд▓рд╛ рдлреЛрди рддрд╛рдмрдбрддреЛрдм рдмрдВрдж рдХрд░реЗрд▓.

рдЯреАрдк: рд╣реЗ рдмрд░реНрдпрд╛рдкреИрдХреА рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдкрд░рдВрддреБ рдЕрджреНрдпрд╛рдк рдЖрдкрд▓реНрдпрд╛ рдлрд╛рдпрд▓реАрдкреНрд░рдгрд╛рд▓реА рдЕрдирдорд╛рдЙрдВрдЯ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдирд╛рд╣реАрдд (рдлрдХреНрдд рд╕рд┐рдВрдХ рдХреЙрд▓ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ), рдЕрд╢реА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ рдХреА рдЖрдкрдг рдбреЗрдЯрд╛ рдЧрдорд╛рд╡реВ рд╢рдХрддрд╛. рдореНрд╣рдгреВрди рдореА рдХреЛрдгрддреАрд╣реА рд╡реЙрд░рдВрдЯреА рдШреЗрдд рдирд╛рд╣реА! рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдЬреЛрдЦрдореАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рд╛!

рдЬрд░ рдЖрдкрдг рд╣рд╛ рдЕреЕрдк рд░реВрдЯ рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдлреЛрдирд╡рд░ рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓ рддрд░ рддреЗ рд╣рдБрдЧ рд╣реЛрдИрд▓ рдХрд┐рдВрд╡рд╛ рдХрд╛рд╣реАрд╣реА рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.
рдЬрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдирд╕реЗрд▓ рдХреА "рдореВрд│ рдлреЛрди" рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдЖрдкрд▓рд╛ рдлреЛрди рдХрд╕рд╛ рд░реВрдЯ рдХрд░рд╛рд╡рд╛ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛рдп рдЖрд╣реЗрдд ... рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕреЕрдк рд╡рд╛рдкрд░реБ рдирдпреЗ.
рдпрд╛ рд░реЛрдЬреА рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ
реиреп рдорд╛рд░реНрдЪ, реирежрезреи

рдбреЗрдЯрд╛рд╕рдВрдмрдВрдзрд┐рдд рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛

рдбреЗрд╡реНрд╣рд▓рдкрд░ рддреБрдордЪрд╛ рдбреЗрдЯрд╛ рдХрд╕рд╛ рдЧреЛрд│рд╛ рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╢реЗрдЕрд░ рдХрд░рддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдкрд╛рд╕реВрди рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ. рддреБрдордЪрд╛ рд╡рд╛рдкрд░, рдкреНрд░рджреЗрд╢ рдЖрдгрд┐ рд╡рдп рдпрд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рдбреЗрдЯрд╛ рдЧреЛрдкрдиреАрдпрддрд╛ рд╡ рд╕реБрд░рдХреНрд╖реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдкрджреНрдзрддреА рдмрджрд▓реВ рд╢рдХрддрд╛рдд. рдбреЗрд╡реНрд╣рд▓рдкрд░рдиреЗ рд╣реА рдорд╛рд╣рд┐рддреА рдкреБрд░рд╡рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рддреА рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
рддреГрддреАрдп рдкрдХреНрд╖рд╛рдВрд╕реЛрдмрдд рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рд╢реЗрдЕрд░ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА
рдбреЗрд╡реНрд╣рд▓рдкрд░ рд╢реЗрдЕрд░ рдХрд░рдгреНрдпрд╛рд╡рд┐рд╖рдпреА рдорд╛рд╣рд┐рддреА рдХрд╢реА рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдд рдпрд╛рд╡рд┐рд╖рдпреА рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛
рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА
рдбреЗрд╡реНрд╣рд▓рдкрд░ рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╡рд┐рд╖рдпреА рдорд╛рд╣рд┐рддреА рдХрд╢реА рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдд рдпрд╛рд╡рд┐рд╖рдпреА рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛

рд░реЗрдЯрд┐рдВрдЧ рдЖрдгрд┐ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдиреЗ

рей.рел
рез.ремрез┬ард╣ рдкрд░реАрдХреНрд╖рдгреЗ

рдирд╡реАрди рдХрд╛рдп рдЖрд╣реЗ

* Using 'reboot -p' with su command directly, so you have to grant it permissions again (and you can remove the other one) - but now you can see for sure that this app only executes the reboot command.
* Notice is given if phone is not rooted or app has no permissions to run as superuser
* Shutdown is done in background thread, so it shouldn't freeze the phone anymore
* Cleanly terminate app after 15s, if shutdown did not work
* Overall improvements, better logging