แอประบบและแอพผู้ใช้แตกต่างกันอย่างไร


28

ขณะที่ฉันเล่นกับ ROM ที่แตกต่างกันและใช้ Titanium Backup ฉันเห็นว่าแอพได้รับการจัดหมวดหมู่เป็นระบบและแอพผู้ใช้ นักพัฒนา ROM หลายรายระบุว่าควรใช้ Titanium Backup สำหรับแอพผู้ใช้เท่านั้นไม่ใช่สำหรับแอพระบบและเมื่อฉันทำการถอนการติดตั้งแอพระบบ TiBu เตือนฉันว่า ROM อาจทำงานไม่ถูกต้อง

นอกเหนือจากข้อเท็จจริงที่ว่าแอพผู้ใช้สามารถดาวน์โหลดได้ผ่านทาง Market หรือวิธีการอื่น ๆ ความแตกต่างหลักระหว่างทั้งสองคืออะไร

อะไรคือสิ่งที่เกี่ยวกับแอพระบบที่ทำให้พวกเขามีความสำคัญต่อระบบปฏิบัติการมากขึ้น?

คำตอบ:


20

/systemอ่านอย่างเดียวโดยไม่ต้องรากจึงจะป้องกันไม่ให้การใช้งานที่ถอนการติดตั้งจากและ/system/app /system/priv-appแอปพลิเคชันที่สำคัญจะอยู่ที่นั่นเพื่อไม่ให้ถอนการติดตั้ง ผู้ให้บริการ bloatware ที่พวกเขาไม่ต้องการให้คุณลบก็ยังมี แอปประเภทหลังสามารถลบได้หากคุณรูทแล้ว อดีตไม่มาก

/system/priv-appยังอนุญาตให้แอปพลิเคชันที่ติดตั้งที่นั่นมีการใช้งานsignatureOrSystemและการอนุญาตพิเศษอื่น ๆ คำตอบของสตีเฟ่นมีตัวอย่าง

สำหรับสาเหตุที่แอพอาจมีความสำคัญขึ้นอยู่กับ ROM Sense ของ HTC ขึ้นอยู่กับแอพที่มีในตัวของพวกเขาเป็นอย่างมากจากสิ่งที่ฉันได้ยิน พวกเขาไม่ได้ออกแบบ UI เพื่อให้ทำงานได้ดีกับแอพของบุคคลที่สาม (หรือล้มเหลวอย่างมากหากแอพระบบหายไป) แอปอื่นเป็นส่วนหนึ่งของระบบปฏิบัติการ Android แต่ Google เขียนให้เป็นแอป / บริการ (อาจเป็นเพราะการห่อหุ้มและเหตุผลด้านความน่าเชื่อถือ)

การอัปเดตสำหรับแอพระบบบางตัวสามารถดาวน์โหลดได้ผ่าน Play Store เช่น Google Maps หากไม่ได้ติดตั้งไว้ล่วงหน้าเป็นแอพระบบบนอุปกรณ์ของคุณคุณสามารถใช้ Titanium เพื่อแปลงมันจากแอพผู้ใช้เป็นแอพระบบ


หมายความว่าแอประบบไม่สามารถถูกฆ่าโดย task killer ได้หรือไม่ หรือว่าพวกเขาจะเริ่มโดยอัตโนมัติถ้าฆ่า?
Ashishsony

@ashishsony System services จะเริ่มโดยอัตโนมัติใช่ แต่ (ส่วนใหญ่) แอป / บริการยังคงถูกฆ่า ตัวอย่างเช่นฉันสามารถฆ่าเบราว์เซอร์บนอุปกรณ์ของฉัน (แทรกคำแนะนำตามปกติเกี่ยวกับวิธีที่ฆาตกรทำงานไม่ดี)
แมทธิวอ่าน

แอประบบที่ถูกต้องบนอุปกรณ์ HTC (แม้กระทั่งอย่าง Dropbox, Facebook) จะถูกรวมเข้ากับ Sense UI มากเกินไป หนึ่งจะต้องละเว้นจากการลบพวกเขา; การแปลงแอพของผู้ใช้ไปเป็นแอพระบบไม่ควรทำเว้นแต่มีความจำเป็นอย่างยิ่งเพราะในบาง ROM อาจไม่ยุติการทำงานภายใต้สภาวะหน่วยความจำเหลือน้อย
Ashesh Kumar Singh

1
@ ความแตกต่างทางโปรแกรมอย่างใดอย่างหนึ่งคือแอปพลิเคชันระบบ (priv-app) รับการถ่ายทอดระบบแม้กระทั่ง force_stop จากการตั้งค่าแอปพลิเคชันเมื่อแอปที่ไม่ใช่ผู้ใช้ (แอปผู้ใช้) ไม่ใช่แอประบบ
Zala Janaksinh

22

คำตอบอื่น ๆ นั้นถูกต้อง แต่ล้มเหลวในการชี้ให้เห็นความแตกต่างสองสามประการ:

สิทธิ์

แอพระบบได้รับความสามารถในการร้องขอการอนุญาตเฉพาะบางอย่างที่ไม่เคยมีให้กับแอพของผู้ใช้ สิ่งนี้ไม่เหมือนกับสิทธิ์ของ root / sudo / su

ตัวอย่างหนึ่งที่ฉันรู้และใช้ทุกวันคือความสามารถในการรีเซ็ตตัวนับการแจ้งเตือนสายที่ไม่ได้รับ ฉันมี Go Dialer ซึ่งใช้แทนโปรแกรมโทรออกหุ้นและแอพติดต่อ (วิธีที่คุณใช้โทรศัพท์) เมื่อฉันพลาดการรับสาย Android จะแจ้งให้ฉันทราบด้วยการแจ้งเตือน อย่างไรก็ตาม Go Dialer ไม่ได้รับอนุญาตให้รีเซ็ตตัวนับนี้แม้ว่ามันจะขออนุญาตนั้นเมื่อคุณติดตั้งแอพ Android 2.2 และรุ่นก่อนหน้าให้ผู้ใช้แอปรีเซ็ต แต่ให้สิทธิ์นี้เป็นสิทธิ์เข้าถึงได้เฉพาะระบบสำหรับ android 2.3

โดยการย้ายแอพ Go Dialer ไปยังพาร์ติชันระบบอนุญาตให้รีเซ็ตตัวนับนี้ ไม่จำเป็นต้องรูทสำหรับแอป (ยกเว้นแน่นอนว่าจะย้ายแอพไปยังพาร์ทิชันระบบ)

การอนุญาตจากระบบอื่นคือความสามารถในการตั้งค่าตำแหน่ง gps ปัจจุบัน ตอนนี้ Android มีการตั้งค่าที่คุณสามารถอนุญาตสถานที่จำลองดังนั้นแอป gps ปลอมแปลงใด ๆ ที่คุณติดตั้งสามารถประกาศตำแหน่ง gps แต่ถ้าแอพนั้นอยู่ในพาร์ติชั่นระบบตำแหน่งจำลองสามารถถูกปิดใช้งานในขณะที่ยังปล่อยให้แอพพลิเคชั่นปลอมตำแหน่ง gps

อัพเดท

แอประบบสามารถอัปเดตได้เช่นเดียวกับแอพผู้ใช้ แต่การอัพเดตจะไม่รวมเข้ากับรอมดั้งเดิม นั่นคือแอประบบมีความสามารถพิเศษในการย้อนกลับไปเป็นเวอร์ชันที่มีอยู่เมื่อติดตั้ง rom ครั้งแรก

ย้ายไปที่ SD

Android ช่วยให้ผู้ใช้ย้ายuserแอพจากหน่วยความจำภายในไปยังการ์ด sd แอประบบไม่สามารถเคลื่อนย้ายและใช้พื้นที่ภายในได้เสมอ อย่างไรก็ตามอุปกรณ์ส่วนใหญ่ (ทั้งหมด?) มีแอพผู้ใช้ภายในพาร์ติชันที่แตกต่างกันดังนั้นการถอนการติดตั้งแอประบบจะไม่ให้พื้นที่แอพผู้ใช้เพิ่มเติม (นอกเหนือจาก dalvik-cache ถูกลบ)

คุณจะกู้คืนพื้นที่ถ้าคุณถอนการติดตั้งการปรับปรุงใด ๆ กับแอประบบ ตามที่ระบุไว้การอัพเดตจะไม่รวมเข้ากับ rom และถูกเก็บไว้ในพื้นที่ผู้ใช้ การอัปเดตไม่ได้รับอนุญาตให้ย้ายไปยังการ์ด sd ด้วยเช่นกัน แต่หากลบออกพื้นที่ผู้ใช้จะถูกกู้คืน

มันมีผลกับคุณอย่างไร

หากคุณเป็นผู้ใช้ Android ที่ไม่เป็นทางการคุณอาจจะไม่พบกับสถานการณ์ที่แอพระบบกับผู้ใช้สร้างความแตกต่าง หากคุณเป็นผู้ใช้ขั้นสูงคุณอาจมีรูทและสามารถเปลี่ยนแอประบบเป็นผู้ใช้ (และในทางกลับกัน) หากคุณเคยประสบกับสถานการณ์เหล่านี้


1
คุณหมายถึง "นี่ไม่เหมือนกับการรูท / su ของการอนุญาต" หรือไม่? ฉันดูเหมือนจะจำได้sudoและsuไม่เหมือนกัน - อย่างน้อยใน Unix และ Linux
ChuongPham

คุณพูดถูกแล้วว่า su และ sudo ต่างกันใน * ระวัง แต่sudoจะสามารถใช้งานได้มากกว่าที่นี่เพราะ sudo กำลังขอสิทธิ์รูทในขณะที่suเพียงแค่ขอให้สลับผู้ใช้ ในการใช้งาน su คุณจะต้องรู้รหัสผ่านของบัญชีที่คุณกำลังเปลี่ยนเท่านั้น หากคุณไม่ได้ระบุบัญชีแสดงว่าคุณกำลังขอให้รูท อย่างไรก็ตามใน Android ไม่มีรหัสผ่านรูทหรือบัญชีอื่น ๆ ดังนั้นsuผู้ใช้จึงสามารถเรียกใช้คำสั่งในเทอร์มินัลเพื่อรับสิทธิ์รูท
สตีเฟ่น Schrauger

ฉันจะอัปเดตคำตอบเพื่อรวมsuเนื่องจากนี่คือสิ่งที่ผู้ใช้ Android บางคนถือเอาไปรูท
สตีเฟ่น Schrauger

4

แอพระบบคือแอพที่รวมอยู่ในระบบ ตั้งอยู่ในโฟลเดอร์ / system / app

ส่วนใหญ่ของพวกเขาจะต้องทำให้อุปกรณ์ทำงาน ตัวอย่างของสิ่งเหล่านี้คือตัวเรียกเลขหมายซึ่งตั้งค่าการเชื่อมต่อเครือข่ายทั้งหมดและเบราว์เซอร์โดยที่ไม่มี webviews ในแอปจะทำงาน


1
โปรแกรมหมุนหมายเลขตั้งค่าการเชื่อมต่อเครือข่ายหรือไม่
แมทธิวอ่าน

2
@MatthewRead ใช่ - มันทำ! 'ตัวเรียกเลขหมาย' ที่แท้จริงคือกิจกรรมที่แยกต่างหากซึ่งอยู่ในแอปพลิเคชันตัวหมุนหมายเลข dialer.apk เป็นแอพที่ตั้งค่าการเชื่อมต่อ - ถ้าคุณต้องการพิสูจน์ให้หยุดแอพ dialer และที่เก็บข้อมูล dialer เครือข่ายจะไม่ทำงาน
เลียม

มันค่อนข้างแปลก!
แมทธิวอ่าน

Android แปลก!
เลียม W

3

ฉันต้องการเพิ่มบางอย่างในคำตอบข้างต้น แอประบบไม่สามารถลบได้ในการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานซึ่งแตกต่างจากแอพผู้ใช้ ดังนั้นหากคุณต้องการลบไฟล์ส่วนตัวทั้งหมด แต่มีจำนวนมากเกินกว่าที่จะลบได้อย่างสะดวกสบายว่าการรีเซ็ตเป็นค่าจากโรงงานเป็นวิธีที่สะดวกที่สุดและคุณมีแอพที่คุณต้องการเก็บไว้คุณสามารถแปลงแอพเหล่านั้นเป็นแอประบบ ไม่ถูกลบระหว่างการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน


1
เคล็ดลับที่น่าสนใจ! ฉันต้องการย้ายเพลงของฉันไปที่ระบบทันทีฮ่า ๆ ๆ
FreeSoftwareServers

2

คุณสมบัติอีกประการของแอประบบคือพวกเขาใช้ไลบรารีดั้งเดิม ( ไฟล์libsomething.so ) จากไดเรกทอรีไลบรารีระบบทั่วไป (โดยทั่วไป/ system / libหรือ/ system / lib64 ) และไม่ได้มาจากไดเรกทอรีไลบรารีส่วนตัวของแอพ (เช่น/ data /app/com.example.HelloJni/lib/arm ) ก่อนใช้ Android Nougat แอปผู้ใช้สามารถโหลดและใช้ไลบรารี่ของระบบได้ฟรี ข้อ จำกัด ในการได้รับการกำหนดในภายหลังดูhttps://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.