기본 명령으로 특정 도메인 응용 프로그램에서 사용 가능한 모든 .plist 키를 나열하는 방법은 무엇입니까?


17

com.apple.dock를 들어 다음 명령을 입력하여 사용 가능한 키를 나열 할 수있는 것처럼 특정 도메인 응용 프로그램에서 사용할 수있는 모든 키 (속성 목록)를 알고 싶습니다 .

$ defaults read com.apple.dock

그러나 어떻게 든이 명령의 출력에는 활성 속성 목록 키만 표시되었지만 사용 가능한 모든 키가 com.apple.dock표시 되지 않았습니다 .

아무도 나를 도울 수 있습니까?


이 말을 다시해도 될까요? 메시지를 작성하는 프로그램을 리버스 엔지니어링하는 방법이 아니라 메시지를 작성하는 도구에 대해 묻습니다. 기본적으로 프로그램은 사용자가 예상하지 않은 기본 설정을 무시합니다. 파인더 사전에 셰익스피어를 포함시킬 수 있으며 파일에 한 번 유효한 plist XML이 있으면 행복하게 아무것도 할 수 없습니다.
bmike

@bmike 나는 이것을 깨달았다. 내가 관심이 있었던 것은 응용 프로그램이 실제로 사용하는 값 ​​목록이었습니다. Apps의 마스터 구성 파일 어딘가에 완전한 목록이있을 수 있다고 생각했습니다.
awesomo

값 목록은 각 프로그램의 소스 코드에만 존재합니다. 관심있는 프로그램이 있습니까? 일단 컴파일되면 바이너리의 문자열 키가 인코딩되어 다른 문자열과 혼합됩니다. 주어진 응용 프로그램에 존재하는 Contents / Resources 폴더에 쉽게 추가 될 수 있으므로 프로그램 작성자가 목록을 포함하지 못하게 막는 것은 없습니다. 실제로 이것은 널리 수행되지 않습니다.
bmike

출력을 diff하여 defaults read일반 환경 설정의 키를 찾거나 CFPreferencesCopyValuegdb 에서 메소드를 사용할 수도 있습니다 . OS X에서 더 많은 기본 쓰기 조정을 탐색하는 방법을 참조하십시오 . -슈퍼 유저 .
Lri

또한 출력을 diff하여 defaults read일반 환경 설정의 키를 찾거나 프레임 워크의 바이너리에서 문자열을 실행하거나 CFPreferencesCopyValuegdb 에서 메소드를 사용할 수 있습니다 . OS X에서 더 많은 기본 쓰기 조정을 탐색하는 방법을 참조하십시오 . -슈퍼 유저 .
Lri

답변:


7

사람들 strings이 명령 줄에서 응용 프로그램에 대해 유틸리티를 실행하고 com.domain.FeatureName과 비슷한 구조와 일치하는 것을 찾으면 사소한 작업이 아닙니다 . (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda 등)

이러한 재정의를 관리하는 가장 쉬운 방법은 시크릿 이름으로 시스템 환경 설정 창을 이용하는 것입니다 . 이를 사용하면 환경 설정 창이 시스템 환경 설정에 설치되고 응용 프로그램을 선택하고 설정을 특정 환경 설정으로 변경하는 인터페이스를 제공합니다.


당신은뿐만 아니라 거기에이 대답하면 나는 그것을 좋아할 것이다 - apple.stackexchange.com/questions/19899/... - 문자열이 최종 사용자를위한 키의 리버스 엔지니어링을 시도 할 수있는 가장 쉬운 방법입니다.
bmike


5

실제로 "사용 가능한"키라는 개념은 없습니다. 응용 프로그램은 원하는 키를 자유롭게 읽을 수 있습니다. 대부분의 사람들 strings은 응용 프로그램 바이너리를 통해 어떤 키를 읽으려고하는지 사용하여 "비밀"기본 키를 발견 합니다.


예, 이것이 바로 "비밀"기본 키를 찾으려는 것입니다. "비밀"키에 대해 더 자세히 설명해 주시겠습니까? 예가 있으면 매우 유용합니다. 대단히 감사합니다.
wongacid

1
잘 알려진 많은 예가 secrets.blacktree.com에
jtbandes

감사!! 이런 종류의 정보에 대한 다른 훌륭한 링크가 있다면 알려주세요. :-)
wongacid

4

대부분의 사람들은 커맨드 라인을 통해 모든 것을하고 싶지만 더 실용적인 제안이 있습니다.

아래에 설명 된이 두 프로그램은 Mac OS X 응용 프로그램의 알려진 명령 줄 사용자 정의 가능 기능을 응용 프로그램 또는 기능별로 정렬하여 나열합니다. 장점은 기능 목록이 제공된다는 것입니다. 기능이 무엇인지, 각 기능을 수정하는 데 필요한 명령 행 순서를 찾기 위해 Google을 검색하지 않아도됩니다.

터미널을 통해 수정할 수있는 대부분의 모든 사용자 정의 옵션을 나열하는 그래픽 사용자 인터페이스를 제공하는 여러 프리웨어 또는 상업용 응용 프로그램이 있습니다. 내가 설명하고있는 프로그램을 사용하여 이러한 기능을 활성화하려면 응용 프로그램의 GUI 내에서 수행해야하며 명령 줄을 전혀 사용할 필요가 없습니다. 파일 defaults write이나 .plist파일 에 대해 알 필요가 없습니다 .

이 두 가지 앱은 다음과 같습니다.

TinkerTool

무료이며

맥 파일럿

새로운 라이온 기능으로 업데이트되었으며 US $ 20.00입니다.

이것들은 내가 소유하고 사용하는 프로그램입니다.

무료 TinkerTool 및 평가판 MacPilot을 다운로드하고 모든 탭을 클릭하여 사용자 정의 할 수있는 수많은 기능을 모두보십시오. 여기에 나열 할 내용이 너무 많습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

최신 정보

개발자 Frederik Wiker 는 Lion 및 Mountain Lion에 대한 기본 쓰기 사용자 정의를 작성하기위한 프리웨어 앱 (기부금 허용)을 출시했습니다. 그들 중 다수는 Mavericks (Mac OS X 10.9)에서도 잘 작동합니다.

이들을 다운로드하여 사용 가능한 사용자 정의를 확인하십시오.

사자 비틀기

산 비틀기

여기에 이미지 설명을 입력하십시오


추천 해 주셔서 감사합니다. 다른 접근법에 감사드립니다.
awesomo

당신은 정말로이 / Wheat의 대답을 받아 들여야합니다. 몇 년 전보다 가벼워 요.
제이슨 살 라즈

3

아마도 일이 어떻게 작동하는지 꽤 오랫동안 설명하면 이러한 "숨겨진"환경 설정에 대한 귀하와 다른 사람들의 검색이 명확해질 수 있습니다.

대부분의 응용 프로그램은 시작할 때 기본 설정 파일을 한 번 읽고 defaults기본 설정 파일이 올바른 구조이고 구문 오류가 포함되지 않도록 도구가 존재합니다. 또한 시스템에서 키 저장 방법을 변경할 수 있으며 사람들은 구현 세부 정보를 알 필요가 없으며 defaults 명령을 사용하여 모든 읽기 및 쓰기를 수행 할 수 있습니다 .

영어 스타일과 문법 가이드는 내가 여기에 입력하는 단어가 일반 영어 사용자에게 의미가 있고 기본 시스템을 표준화하면 모든 사람이 무엇을 기대해야하는지 알 수 있도록 프레임 워크를 설정합니다. 기본 설정 목록 형식은 사람의 언어보다 훨씬 엄격하고 수학적이지만 개념은 비슷합니다.

Mac OS X 사용자 기본 시스템은 키 값 저장소 (또는 원하는 경우 데이터베이스)입니다.

이 기본 설정 키 값 저장소, 셰익스피어 소네트, 숫자, 쇼핑 목록에 무엇이든 쓸 수 있습니다. 프로그램이 특정 키를 찾도록 코딩 된 경우 저장된 값을 읽습니다. 해당 키를 찾지 못하면 가치는 사용되지 않고 읽지 않은 것입니다.

특정 프로그램이 시작될 때 어떤 값을 찾고 있는지 알 수 있습니다. 그것은 가치를 알거나 프로그램을 리버스 엔지니어링해야한다는 결론입니다.

프로그램을 조사하고 어떤 문자열 (키)이 포함되어 있는지 파악하려는 많은 도구가 있습니다. strings 하고 dbx / lldb 특정 프로그램의 내부 구조를 덤프하기 위해 자신의 라이브러리에 링크하는 .

실제로, 테스트에 필요한 일부는이 "숨겨진"방식으로 추가되어 프로그램의 환경 설정 창을 살펴볼 수 없으며 광범위하게 사용할 수없는 새로운 기능을 볼 수 있습니다. 어떤 방식 으로든, 해당 프로그램의 작성자가 소스 코드를 공개하거나 이러한 설정을 공개적으로 문서화하지 않는 한 포괄적 인 목록을 얻는 것은 결코 간단하지 않습니다.

특정 응용 프로그램에 대한 기본 저장소를 읽을 때-응용 프로그램이 기본 설정 또는 Mac OS X와 ​​함께 제공되는 설정을 만들 때 작성된 "책"을 읽는 것뿐입니다. 해당 응용 프로그램으로 현실적으로 변경할 수있는 것들의 목록.


2

내가 아는 한 응용 프로그램은 기본값과 다른 경우에만 새 키를 저장합니다. 적어도 내 앱은 그렇게합니다. 앱은 사용자에게 기본적으로 저장해야 할 내용 만 알려주고 나머지는 처리하므로 사용자 기본 프레임 워크의 일부이므로 쉽게 제어 할 수있는 것이 아닙니다. 나는 당신이 찾고있는 정보가 슬프게도 쉽게 얻을 것이라고 생각하지 않습니다. 이것에 접근하는 것이 좋을 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.