앱을 동결하면 기술적으로 어떻게 작동합니까?


22

Link2SD 및 Titanium Backup과 같은 앱은 다른 앱을 "고정"하여 제거하지 않고 비활성화 할 수 있습니다. 이를 달성하기 위해이 앱들은 무엇을합니까?

답변:


28

티타늄 백업 등은 내장 Package Manager (pm)앱을 사용 하여 앱을 정지시킵니다. pm런처에 앱이 실행되고 나타나지 않도록하는 기능이 있습니다. 이것을 사용하려면 Titanium Backup 등이 다음 명령을 실행하십시오.

오후 비활성화 {package_name}

전용 냉동고 앱을 사용하지 않고도 직접 앱을 고정 할 수 있습니다. 터미널 에뮬레이터 또는 에서 위의 명령을 사용하십시오 ADB Shell.

예를 들어, 고정하려는 경우 command를 사용하여 루트로 Stock Web Browser열고 Terminal Emulator전환하십시오 su. 그런 다음를 실행하십시오 # pm disable com.android.browser.
를 반환 #Package com.android.browser new state: disabled합니다. 끝난!
앱 아이콘이 사라진 것을 확인하려면 런처를 다시 시작하십시오 (일부 장치는 재부팅이 필요할 수 있음).

단지 대체 응용 프로그램을 해동하는 방법 disable으로 enable명령한다.


여기에 설명 된 kill -STOP, kill -CONT 명령과 동일합니까? linuxpoison.blogspot.com/2007/11/…
NoBugs

@NoBugs 장치를 재부팅하십시오. 일부 기기는 앱을 완전히 사용 중지하기 위해 필요합니다. 그리고 네, 이것은 명령을 죽이지 않습니다.
Android Quesito

권리. 때때로 pm disable"killed"라고만 표시되면 프로세스가 즉시 다시 시작됩니다. kill -STOP pid가 더 좋습니다. ps출력 에서 중지 된 것을 볼 수 있습니다 .
NoBugs

13

pm disable작동 방식을 찾았습니다 .

를 실행 cat /system/bin/pm하면 다음을 제공합니다.

# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"

따라서 Java에서 사용하는 PackageManager와 동일하며 사용자 응용 프로그램이 직접 액세스 할 수없는 루트 컨텍스트에서만 호출합니다.

사용하여 무언가가 얼 었는지 확인할 수 있습니다.

getPackageManager().getApplicationEnabledSetting( the package name ) ==
        getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)

-4

Unix 시스템에서 파일은 읽기, 쓰기 및 실행의 3 가지 권한을 갖습니다.

(3 가지 범주의 사람들 : 파일의 소유자 (일반적으로 그 제작자), 사람들의 그룹, 그리고 다른 모든 사람들이지만 주제에서 벗어남).

파일의 실행 권한을 제거하면 더 이상 파일을 실행할 수 없습니다.


안녕하세요 dralpuop. Android 앱은 바이너리가 아니므로 실행 권한을 추가하거나 제거해도 실행에는 아무런 차이가 없습니다.
소방관

Android는 System 5 Unix입니다. 예를 들어 쉘 스크립트는 바이너리가 아니지만 실행 권한을 추가하거나 제거하면 차이가 있습니다.
dralpuop

쉘 스크립트는 실행 가능 비트를 설정하지 않고 실행할 수 있으며,이를 인수로 직접 정수에 전달하여 쉘 스크립트 나 앱에 차이가 없습니다. 질문과 질문은 쉘 스크립트가 아니라 앱 Android 앱에 관한 것입니다.
소방관

1
이 소스를 사용하여 Android에서 앱이 어떻게 실행되는지 확인하십시오. github.com/dogriffiths/HeadFirstAndroid/wiki/...
불의 군주
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.