Acrobat ARMDC

[Acrobat]ARMDCアップデート


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003(*
004【1】最新版のARMDCのバージョン
005【2】インストール済みのARMDCのバージョン
006【3】最新のマニフェストのダウンロード解凍
007【4】マニフェストからPKGのURLを取得
008【5】pkgのダウンロード
009【6】pkgのインストール(要管理者権限)
010
011*)
012# com.cocolog-nifty.quicktimer.icefloe
013----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
014use AppleScript version "2.8"
015use framework "Foundation"
016use framework "AppKit"
017use framework "UniformTypeIdentifiers"
018use scripting additions
019
020property refMe : a reference to current application
021
022
023set strCurrentVerURL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/current_version.txt") as text
024
025set strHelperManifestsURL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/ARMDCHelperManifest.arm") as text
026###PKG
027#拡張子はarmだけど中身はPKG
028#2015 1 . 0 . 14
029set strContent1URL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/RMPackage/univ/ARMDCContents.arm") as text
030#2017 1 . 1 . 1
031set strContent2URL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/RMPackage/univ/ARMDCContents2.arm") as text
032#2018 1 . 1 . 7
033set strContent3URL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/RMPackage/univ/ARMDCContents3.arm") as text
034#最新 1 . 2 . 6
035set strContent4URL to ("https://armmf.adobe.com/arm-manifests/mac/ARMDC/RMPackage/univ/ARMDCContents4.arm") as text
036
037#Installer
038set strAgentInstallerURL to ("https://armmf.adobe.com/arm-updates/mac/ARMDC/ARM_update/ARMDCAgentInstaller.pkg") as text
039
040
041#########################
042#【1】最新版のARMDCのバージョン
043#current_version.txtの取得
044set ocidCurrentVerURLStr to refMe's NSString's stringWithString:(strCurrentVerURL)
045set ocidCurrentVerURL to refMe's NSURL's alloc()'s initWithString:(ocidCurrentVerURLStr)
046#
047set listResponse to refMe's NSString's alloc()'s initWithContentsOfURL:(ocidCurrentVerURL) encoding:(refMe's NSASCIIStringEncoding) |error| :(reference)
048set ocidCurrentVer to (item 1 of listResponse)
049#初回アクセス時に値を取れないことがあるので保険で3回
050if ocidCurrentVer = (missing value) then
051  repeat 3 times
052    set listResponse to refMe's NSString's alloc()'s initWithContentsOfURL:(ocidCurrentVerURL) encoding:(refMe's NSASCIIStringEncoding) |error| :(reference)
053    delay 0.5
054  end repeat
055  set ocidCurrentVer to (item 1 of listResponse)
056end if
057if ocidCurrentVer = (missing value) then
058  return "バージョン取得に失敗しました"
059end if
060log "current_version.txt: " & ocidCurrentVer as text
061
062
063#########################
064#【2】インストール済みのARMDCのバージョン
065#バージョンチェック用
066set strRegPlistFilePath to ("/Library/Application Support/Adobe/ARMDC/Registered Products/com.adobe.ARMDCHelper.plist")
067set ocidRegPlistFilePathStr to refMe's NSString's stringWithString:(strRegPlistFilePath)
068set ocidRegPlistFilePath to ocidRegPlistFilePathStr's stringByStandardizingPath()
069set ocidRegPlistFilePathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidRegPlistFilePath) isDirectory:(false)
070#Registered Productsのplistを読み取り
071set listResponse to refMe's NSDictionary's dictionaryWithContentsOfURL:(ocidRegPlistFilePathURL) |error| :(reference)
072if (item 2 of listResponse) = (missing value) then
073  log "dictionaryWithContentsOfURL 正常処理"
074  set ocidPlistDict to (item 1 of listResponse)
075else if (item 2 of listResponse) (missing value) then
076  set strErrorNO to (item 2 of listDone)'s code() as text
077  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
078  refMe's NSLog("■:" & strErrorNO & strErrorMes)
079  return "エラーしました" & strErrorNO & strErrorMes
080end if
081
082set ocidVerUrlDict to ocidPlistDict's objectForKey:("VersionFileURL")
083set ocidBaseURL to ocidVerUrlDict's valueForKey:("httpsURLBase")
084set ocidPathURL to ocidVerUrlDict's valueForKey:("URL")
085#URLに
086set ocidBaseVerURL to refMe's NSURL's alloc()'s initWithString:(ocidBaseURL)
087set ocidVerURL to ocidBaseVerURL's URLByAppendingPathComponent:(ocidPathURL)
088set strVerURL to ocidVerURL's absoluteString() as text
089#インストール済みのパス
090set ocidHelperPathArray to ocidPlistDict's objectForKey:("Version")
091set ocidHelperPathStr to ocidHelperPathArray's firstObject()
092set ocidHelperPath to ocidHelperPathStr's stringByStandardizingPath()
093set ocidHelperPathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidHelperPath) isDirectory:(false)
094#インストール済みののplistを読み取り
095set listResponse to refMe's NSDictionary's dictionaryWithContentsOfURL:(ocidHelperPathURL) |error| :(reference)
096if (item 2 of listResponse) = (missing value) then
097  log "dictionaryWithContentsOfURL 正常処理"
098  set ocidPlistDict to (item 1 of listResponse)
099else if (item 2 of listResponse) (missing value) then
100  set strErrorNO to (item 2 of listDone)'s code() as text
101  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
102  refMe's NSLog("■:" & strErrorNO & strErrorMes)
103  return "エラーしました" & strErrorNO & strErrorMes
104end if
105
106set ocidInstallVerStr to ocidPlistDict's valueForKey:("CFBundleVersion")
107set ocidInstallVerStr to (ocidInstallVerStr's stringByReplacingOccurrencesOfString:(" ") withString:(""))
108log "CFBundleVersion: " & ocidInstallVerStr as text
109#バージョン比較
110set boolSame to (ocidCurrentVer's isEqualToString:(ocidInstallVerStr)) as boolean
111if boolSame is true then
112  return "バージョン同じ=最新なので処理する必要がない"
113end if
114
115
116#########################
117#【3】最新のマニフェストのダウンロード解凍
118#Manifestダウンロード
119set ocidHelperManifestsURLStr to refMe's NSString's stringWithString:(strHelperManifestsURL)
120set ocidHelperManifestsURL to refMe's NSURL's alloc()'s initWithString:(ocidHelperManifestsURLStr)
121#テンポラリ
122set appFileManager to refMe's NSFileManager's defaultManager()
123set ocidTempDirURL to appFileManager's temporaryDirectory()
124set ocidUUID to refMe's NSUUID's alloc()'s init()
125set ocidUUIDString to ocidUUID's UUIDString
126set ocidSaveDirPathURL to ocidTempDirURL's URLByAppendingPathComponent:(ocidUUIDString) isDirectory:(true)
127set appFileManager to refMe's NSFileManager's defaultManager()
128set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
129ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions)
130set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:(true) attributes:(ocidAttrDict) |error| :(reference)
131if (item 1 of listDone) is true then
132  log "createDirectoryAtURL 正常処理"
133else if (item 2 of listDone) (missing value) then
134  set strErrorNO to (item 2 of listDone)'s code() as text
135  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
136  refMe's NSLog("■:" & strErrorNO & strErrorMes)
137  return "エラーしました" & strErrorNO & strErrorMes
138end if
139###パス
140set strSaveFileName to "ARMDCHelperManifest.pkg" as text
141set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strSaveFileName) isDirectory:(false)
142##NSDATAに読み込む
143set ocidOption to (refMe's NSDataReadingMappedIfSafe)
144set listResponse to refMe's NSData's alloc()'s initWithContentsOfURL:(ocidHelperManifestsURL) options:(ocidOption) |error| :(reference)
145if (item 2 of listResponse) = (missing value) then
146  log "initWithContentsOfURL 正常処理"
147  set ocidReadData to (item 1 of listResponse)
148else if (item 2 of listResponse) (missing value) then
149  set strErrorNO to (item 2 of listResponse)'s code() as text
150  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
151  refMe's NSLog("■:" & strErrorNO & strErrorMes)
152  return "エラーしました" & strErrorNO & strErrorMes
153end if
154##NSDataで保存
155set ocidOption to (refMe's NSDataWritingAtomic)
156set listDone to ocidReadData's writeToURL:(ocidSaveFilePathURL) options:(ocidOption) |error| :(reference)
157if (item 1 of listDone) is true then
158  log "ocidSaveFilePathURL 正常処理"
159else if (item 2 of listDone) (missing value) then
160  set strErrorNO to (item 2 of listDone)'s code() as text
161  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
162  refMe's NSLog("■:" & strErrorNO & strErrorMes)
163  return "エラーしました" & strErrorNO & strErrorMes
164end if
165##解凍ファイル
166set strSaveFilePath to ocidSaveFilePathURL's |path|() as text
167##解凍先
168set ocidExpandDirPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("Expand") isDirectory:(true)
169set strExpandDirPath to ocidExpandDirPathURL's |path|() as text
170#コマンド実行
171set strComandText to "/usr/sbin/pkgutil  --expand-full \"" & strSaveFilePath & "\" \"" & strExpandDirPath & "\"" as text
172log "\r" & strComandText & "\r"
173set strExec to ("/bin/zsh -c '" & strComandText & "'")
174try
175  do shell script strExec
176on error
177  return "do shell scriptでエラーしました"
178end try
179
180##############################
181#XML読み込み
182set ocidManifestFilePathURL to ocidExpandDirPathURL's URLByAppendingPathComponent:("ASSET/ARMDCHelperManifest.xml") isDirectory:(false)
183#NSDATAに読み込み
184set ocidOption to (refMe's NSDataReadingMappedIfSafe)
185set listResponse to refMe's NSData's alloc()'s initWithContentsOfURL:(ocidManifestFilePathURL) options:(ocidOption) |error| :(reference)
186if (item 2 of listResponse) = (missing value) then
187  log "initWithContentsOfURL 正常処理"
188  set ocidReadData to (item 1 of listResponse)
189else if (item 2 of listResponse) (missing value) then
190  log (item 2 of listResponse)'s code() as text
191  log (item 2 of listResponse)'s localizedDescription() as text
192  return "initWithContentsOfURL エラーしました"
193end if
194##############################
195#XMLに読み込む
196set ocidOption to (refMe's NSXMLNodePreserveAll) + (refMe's NSXMLDocumentTidyXML)
197set listResponse to refMe's NSXMLDocument's alloc()'s initWithData:(ocidReadData) options:(ocidOption) |error| :(reference)
198if (item 2 of listResponse) = (missing value) then
199  log "initWithData 正常処理"
200  set ocidXMLDoc to (item 1 of listResponse)
201else if (item 2 of listResponse) (missing value) then
202  log (item 2 of listResponse)'s code() as text
203  log (item 2 of listResponse)'s localizedDescription() as text
204  log "initWithData エラー 警告がありました"
205  set ocidXMLDoc to (item 1 of listResponse)
206end if
207##############################
208#XML解析
209#ROOT
210set ocidRootElement to ocidXMLDoc's rootElement()
211set ocidActionItemsArray to ocidRootElement's elementsForName:("DownloadActionItems")
212set ocidActionItems to ocidActionItemsArray's firstObject()
213set ocidDItemArray to (ocidActionItems's elementsForName:("dItem"))
214set ocidDItem to ocidDItemArray's firstObject()
215set ocidHttpURLBase to (ocidDItem's attributeForName:("httpURLBase"))'s stringValue()
216set ocidURLPath to (ocidDItem's attributeForName:("URL"))'s stringValue()
217set ocidURLFileName to (ocidDItem's attributeForName:("fileName"))'s stringValue()
218#
219set ocidBaseAgentInstallerURL to refMe's NSURL's alloc()'s initWithString:(ocidHttpURLBase)
220set ocidBaseDirAgentInstallerURL to ocidBaseAgentInstallerURL's URLByAppendingPathComponent:(ocidURLPath)
221set ocidAgentInstallerURL to ocidBaseDirAgentInstallerURL's URLByAppendingPathComponent:(ocidURLFileName)
222set strAgentInstallerURL to ocidAgentInstallerURL's absoluteString() as text
223
224##############################
225#【5】pkgのダウンロード
226set ocidSavePkgFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(ocidURLFileName) isDirectory:(false)
227#NSDATAに読み込み
228set ocidOption to (refMe's NSDataReadingMappedIfSafe)
229set listResponse to refMe's NSData's alloc()'s initWithContentsOfURL:(ocidAgentInstallerURL) options:(ocidOption) |error| :(reference)
230if (item 2 of listResponse) = (missing value) then
231  log "initWithContentsOfURL 正常処理"
232  set ocidReadData to (item 1 of listResponse)
233else if (item 2 of listResponse) (missing value) then
234  log (item 2 of listResponse)'s code() as text
235  log (item 2 of listResponse)'s localizedDescription() as text
236  return "initWithContentsOfURL エラーしました"
237end if
238##NSDataで保存
239set ocidOption to (refMe's NSDataWritingAtomic)
240set listDone to ocidReadData's writeToURL:(ocidSavePkgFilePathURL) options:(ocidOption) |error| :(reference)
241if (item 1 of listDone) is true then
242  log "ocidSaveFilePathURL 正常処理"
243else if (item 2 of listDone) (missing value) then
244  set strErrorNO to (item 2 of listDone)'s code() as text
245  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
246  refMe's NSLog("■:" & strErrorNO & strErrorMes)
247  return "エラーしました" & strErrorNO & strErrorMes
248end if
249
250set strPkgFilePath to ocidSavePkgFilePathURL's |path|() as text
251#コマンド実行
252set strCommandText to ("/usr/bin/sudo /usr/sbin/installer -pkg \"" & strPkgFilePath & "\" -target / -dumplog -allowUntrusted -lang ja") as text
253log "\r" & strCommandText & "\r"
254set strExec to ("/bin/zsh -c '" & strCommandText & "'")
255try
256  do shell script strExec
257on error
258  return "do shell scriptでエラーしました"
259end try
260
261
262return 0
AppleScriptで生成しました

|

[com.adobe.ARMDC]Acrobatの自動アップデートの停止 FeatureLockdownを使わない方法(アップルスクリプト版)


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# 要管理者権限
004#   com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010property refMe : a reference to current application
011
012#アプリケーションサポート(ローカルドメイン)
013set appFileManager to refMe's NSFileManager's defaultManager()
014set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSLocalDomainMask))
015set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
016#ターゲットディレクトリ
017set ocidTargetDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("Adobe/ARMDC/Registered Products") isDirectory:(true)
018#URLの収集
019set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
020set ocidKeyArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
021ocidKeyArray's addObject:(refMe's NSURLPathKey)
022set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidTargetDirPathURL) includingPropertiesForKeys:(ocidKeyArray) options:(ocidOption) |error| :(reference))
023set ocidSubPathURLArray to (item 1 of listResponse)
024#
025repeat with itemURL in ocidSubPathURLArray
026  set strFilePath to itemURL's |path|() as text
027  #まずは値の確認
028  set strCommand to ("/usr/bin/defaults read \"" & strFilePath & "\" UpdateMode") as text
029  log "\r" & strCommand & "\r"
030  set strExec to ("/bin/zsh -c '" & strCommand & "'") as text
031  try
032    set strResponse to (do shell script strExec) as text
033  on error
034    log "エラーしました: " & strFilePath
035  end try
036  #戻り値が0なら変更する
037  if strResponse = "0" then
038    set strCommand to ("/usr/bin/defaults write \"" & strFilePath & "\" UpdateMode 3") as text
039    log "\r" & strCommand & "\r"
040    set strExec to ("/bin/zsh -c '/usr/bin/sudo " & strCommand & "'") as text
041    try
042      set strResponse to (do shell script strExec) as text
043    on error
044      log "エラーしました: " & strFilePath
045    end try
046    #アクセス権を戻しておく
047    set strCommand to ("/bin/chmod 755  \"" & strFilePath & "\"") as text
048    log "\r" & strCommand & "\r"
049    set strExec to ("/bin/zsh -c '/usr/bin/sudo " & strCommand & "'") as text
050    try
051      set strResponse to (do shell script strExec) as text
052    on error
053      log "エラーしました: " & strFilePath
054    end try
055  end if
056  
057  
058end repeat
AppleScriptで生成しました

|

[com.adobe.ARMDC]Acrobatの自動アップデートの停止 FeatureLockdownを使わない方法

Acrobatの自動アップデートの停止 Mac版(アクロバット・リフレッシュマネージャー Acrobat Refresh Manager ARM)
サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003# Acrobatのアップデート停止
004# SCA版
005#################################################
006###管理者インストールしているか?チェック
007USER_WHOAMI=$(/usr/bin/whoami)
008/bin/echo "実行ユーザー(whoami): $USER_WHOAMI"
009if [ "$USER_WHOAMI" != "root" ]; then
010  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
011  /bin/echo "sudo で実行してください"
012  ### path to me
013  SCRIPT_PATH="${BASH_SOURCE[0]}"
014  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
015  /bin/echo "↑を実行してください"
016  ###実行しているユーザー名
017  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
018  /bin/echo "コンソールユーザー(scutil): $CONSOLE_USER"
019  exit 1
020else
021  ###実行しているユーザー名
022  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
023  /bin/echo "コンソールユーザー(scutil): $CONSOLE_USER"
024  ###実行しているユーザー名
025  HOME_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
026  /bin/echo "実行ユーザー(HOME): $HOME_USER"
027  ###logname
028  LOGIN_NAME=$(/usr/bin/logname)
029  /bin/echo "ログイン名(logname): $LOGIN_NAME"
030  ###UID
031  USER_NAME=$(/usr/bin/id -un)
032  /bin/echo "ユーザー名(id): $USER_NAME"
033  ###STAT
034  STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
035  /bin/echo "STAT_USR(console): $STAT_USR"
036fi
037
038########################################
039##SCAチェック
040NUM_BOOL_SCA=$(/usr/bin/defaults read "/Applications/Adobe Acrobat DC/Adobe Acrobat.app/Contents/Info.plist" AcroSCA)
041if [ "$NUM_BOOL_SCA" = "1" ]; then
042  /bin/echo "SCA版インストールされています"
043elif [ "$NUM_BOOL_SCA" = "0" ]; then
044  /bin/echo "従来版インストールされています"
045fi
046
047########################################
048##アップデートモードチェック
049STR_PREF_FILE_NAME_CLASSIC="com.adobe.acrobat.classic.plist"
050STR_PREF_FILE_NAME_DC="com.adobe.acrobat.dc.plist"
051STR_PREF_FILE_NAME_2020="com.adobe.acrobat.2020.plist"
052STR_PREF_FILE_NAME_READER="com.adobe.reader.dc.plist"
053STR_PREF_FILE_NAME_READER2020="com.adobe.reader.2020.plist"
054STR_SERV_FILE_NAME_CLASSIC="com.adobe.acrobat.servicesupdater.classic.plist"
055STR_SERV_FILE_NAME_DC="com.adobe.acrobat.servicesupdater.dc.plist"
056STR_SERV_FILE_NAME_2020="com.adobe.acrobat.servicesupdater.2020.plist"
057STR_SERV_FILE_NAME_READER="com.adobe.reader.servicesupdater.dc.plist"
058STR_SERV_FILE_NAME_READER2020="com.adobe.reader.servicesupdater.2020.plist"
059STR_ARMDC_HELPER_FILE_NAME="com.adobe.ARMDCHelper.plist"
060#リストにして
061LIST_PLIST_FILE_NAME=(
062  "$STR_PREF_FILE_NAME_CLASSIC"
063  "$STR_PREF_FILE_NAME_DC"
064  "$STR_PREF_FILE_NAME_2020"
065  "$STR_PREF_FILE_NAME_READER"
066  "$STR_PREF_FILE_NAME_READER2020"
067  "$STR_SERV_FILE_NAME_CLASSIC"
068  "$STR_SERV_FILE_NAME_DC"
069  "$STR_SERV_FILE_NAME_2020"
070  "$STR_SERV_FILE_NAME_READER"
071  "$STR_SERV_FILE_NAME_READER2020"
072  "$STR_ARMDC_HELPER_FILE_NAME")
073#設定ファイルのコンテナ
074STR_BASE_DIR_PATH="/Library/Application Support/Adobe/ARMDC/Registered Products"
075#まずはタッチする
076for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
077  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
078  /bin/echo "TOUCH: ${STR_FILE_PATH}"
079  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save:" "$STR_FILE_PATH"
080done
081#アクセス権
082for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
083  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
084  /bin/echo "CHMOD: ${STR_FILE_PATH}"
085  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
086done
087#モード変更
088for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
089  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
090  NUM_MODE=$(/usr/bin/defaults read "$STR_FILE_PATH" UpdateMode)
091  /bin/echo "MODE: ${NUM_MODE} : PATH :  ${STR_FILE_PATH}"
092  if [ "$NUM_BOOL_MODE" = "0" ]; then
093    /bin/echo "UpdateMode ONです OFF=3を設定します"
094    /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" UpdateMode -int 3
095    /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" UpdateCycle -int 99999999
096  elif [ "$NUM_BOOL_MODE" = "3" ]; then
097    /bin/echo "UpdateMode OFFです"
098  else
099    /bin/echo "未インストール"
100    /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" UpdateMode -int 3
101    /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" UpdateCycle -int 99999999
102  fi
103  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save:" "$STR_FILE_PATH"
104done
105#アクセス権
106for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
107  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
108  /bin/echo "CHMOD: ${STR_FILE_PATH}"
109  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
110done
111
112
113####################################
114# LaunchAgents 停止
115ITEM_BUNDLEIS="com.adobe.ARMDCHelper"
116STR_DIR_PATH="/Library/LaunchAgents"
117LIST_FILE_PATH=$(/usr/bin/find "$STR_DIR_PATH" -type f -name "${ITEM_BUNDLEIS}*")
118#
119for ITEM_FILE_PATH in "${LIST_FILE_PATH[@]}"; do
120/bin/echo "停止: $ITEM_FILE_PATH"
121  if [ -f "$STR_FILE_PATH" ]; then
122    /usr/bin/sudo /bin/launchctl stop -w "$ITEM_FILE_PATH"
123    /usr/bin/sudo /bin/launchctl unload -w "$ITEM_FILE_PATH"
124    /usr/bin/sudo /bin/launchctl bootout system -w "$ITEM_FILE_PATH"
125    /usr/bin/sudo /usr/bin/defaults write "$ITEM_FILE_PATH" RunAtLoad -bool false
126    /usr/bin/sudo /bin/chmod 644 "$ITEM_FILE_PATH"
127  fi
128done
129
130####################################
131# LaunchDaemons 停止
132ITEM_BUNDLEIS="com.adobe.ARMDC.Communicator"
133/bin/echo "停止: $ITEM_BUNDLEIS"
134STR_FILE_PATH="/Library/LaunchDaemons/${ITEM_BUNDLEIS}.plist"
135if [ -f "$STR_FILE_PATH" ]; then
136  /usr/bin/sudo /bin/launchctl stop -w "$STR_FILE_PATH"
137  /usr/bin/sudo /bin/launchctl unload -w "$STR_FILE_PATH"
138  /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" RunAtLoad -bool false
139  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
140fi
141
142####################################
143# LaunchDaemons 停止
144ITEM_BUNDLEIS="com.adobe.ARMDC.SMJobBlessHelper"
145/bin/echo "停止: $ITEM_BUNDLEIS"
146STR_FILE_PATH="/Library/LaunchDaemons/${ITEM_BUNDLEIS}.plist"
147if [ -f "$STR_FILE_PATH" ]; then
148  /usr/bin/sudo /bin/launchctl stop -w "$STR_FILE_PATH"
149  /usr/bin/sudo /bin/launchctl unload -w "$STR_FILE_PATH"
150  /usr/bin/sudo /usr/bin/defaults write "$STR_FILE_PATH" RunAtLoad -bool false
151  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
152fi
153
154
155
156exit 0
AppleScriptで生成しました

|

[com.adobe.ARMDC]アクロバット・リフレッシュマネージャー Acrobat Refresh Manager に登録されている製品設定の値の変更


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003: <<'EOF'
004"/Library/Application Support/Adobe/ARMDC/Registered Products"に生成される設定ファイルの値が
005ユーザー設定を参照しないようになっている項目を修正します
006FeatureLockDownの参照先を
007/Library/Preferences/com.adobe.Acrobat.Pro.plist
008/Library/Preferences/com.adobe.Reader.plistt
009から
010~/Library/Preferences/com.adobe.Acrobat.Pro.plist
011~/Library/Preferences/com.adobe.Reader.plistt に変更します
012
013EOF
014
015STR_PREF_FILE_PATH_CLASSIC="com.adobe.acrobat.classic.plist"
016STR_PREF_FILE_PATH_DC="com.adobe.acrobat.dc.plist"
017STR_PREF_FILE_PATH_2020="com.adobe.acrobat.2020.plist"
018
019STR_PREF_FILE_PATH_READER="com.adobe.reader.dc.plist"
020STR_PREF_FILE_PATH_READER2020="com.adobe.reader.2020.plist"
021
022STR_SERV_FILE_PATH_CLASSIC="com.adobe.acrobat.servicesupdater.classic.plist"
023STR_SERV_FILE_PATH_DC="com.adobe.acrobat.servicesupdater.dc.plist"
024STR_SERV_FILE_PATH_2020="com.adobe.acrobat.servicesupdater.2020.plist"
025
026STR_SERV_FILE_PATH_READER="com.adobe.reader.servicesupdater.dc.plist"
027STR_SERV_FILE_PATH_READER2020="com.adobe.reader.servicesupdater.2020.plist"
028
029LIST_PLIST_FILE_NAME=(
030  "$STR_PREF_FILE_PATH_CLASSIC"
031  "$STR_PREF_FILE_PATH_DC"
032  "$STR_PREF_FILE_PATH_2020"
033  "$STR_PREF_FILE_PATH_READER"
034  "$STR_PREF_FILE_PATH_READER2020"
035
036  "$STR_SERV_FILE_PATH_CLASSIC"
037  "$STR_SERV_FILE_PATH_DC"
038  "$STR_SERV_FILE_PATH_2020"
039  "$STR_SERV_FILE_PATH_READER"
040  "$STR_SERV_FILE_PATH_READER2020"
041)
042STR_BASE_DIR_PATH="/Library/Application Support/Adobe/ARMDC/Registered Products"
043
044#まずはタッチする
045for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
046  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
047  /bin/echo "TOUCH: ${STR_FILE_PATH}"
048  /usr/bin/sudo /usr/bin/touch "$STR_FILE_PATH"
049done
050
051
052#アクセス権を修正
053for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
054  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
055  /bin/echo "CHMOD: ${STR_FILE_PATH}"
056  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
057done
058
059
060# STR_PREF_FILE_PATH_CLASSIC="com.adobe.acrobat.classic.plist"
061STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_PREF_FILE_PATH_CLASSIC}"
062if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
063  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
064  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
065  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "Classic/FeatureLockdown/cServices/bUpdater"
066else
067  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
068  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'Classic/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
069  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
070fi
071
072# STR_PREF_FILE_PATH_DC="com.adobe.acrobat.dc.plist"
073STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_PREF_FILE_PATH_DC}"
074if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
075  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
076  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
077  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "DC/FeatureLockdown/cServices/bUpdater"
078else
079  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
080  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'DC/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
081  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
082fi
083
084# STR_PREF_FILE_PATH_2020="com.adobe.acrobat.2020.plist"
085STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_PREF_FILE_PATH_2020}"
086if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
087  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
088  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
089  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "2020/FeatureLockdown/cServices/bUpdater"
090else
091  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
092  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 '2020/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
093  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
094fi
095
096# STR_SERV_FILE_PATH_CLASSIC="com.adobe.acrobat.servicesupdater.classic.plist"
097STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_SERV_FILE_PATH_CLASSIC}"
098if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
099  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
100  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
101  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "Classic/FeatureLockdown/cServices/bUpdater"
102else
103  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
104  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'Classic/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
105  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
106fi
107
108# STR_SERV_FILE_PATH_DC="com.adobe.acrobat.servicesupdater.dc.plist"
109STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_SERV_FILE_PATH_DC}"
110if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
111  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
112  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
113  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "DC/FeatureLockdown/cServices/bUpdater"
114else
115  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
116  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'DC/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
117  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
118fi
119
120# STR_SERV_FILE_PATH_2020="com.adobe.acrobat.servicesupdater.2020.plist"
121STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_SERV_FILE_PATH_2020}"
122if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
123  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
124  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Acrobat.Pro.plist"
125  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "2020/FeatureLockdown/cServices/bUpdater"
126else
127  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Acrobat.Pro.plist'" "$STR_TARGET_PATH"
128  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 '2020/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
129  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
130fi
131
132####ここからREADER
133
134# STR_PREF_FILE_PATH_READER="com.adobe.reader.dc.plist"
135STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_PREF_FILE_PATH_READER}"
136if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
137  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
138  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Reader.plistt"
139  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "DC/FeatureLockdown/cServices/bUpdater"
140else
141  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Reader.plist'" "$STR_TARGET_PATH"
142  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'DC/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
143  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
144fi
145
146# STR_PREF_FILE_PATH_READER2020="com.adobe.reader.2020.plist"
147STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_PREF_FILE_PATH_READER2020}"
148if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
149  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
150  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Reader.plist"
151  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "2020/FeatureLockdown/cServices/bUpdater"
152else
153  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Reader.plist'" "$STR_TARGET_PATH"
154  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 '2020/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
155  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
156fi
157
158# STR_SERV_FILE_PATH_READER="com.adobe.reader.servicesupdater.dc.plist"
159STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_SERV_FILE_PATH_READER}"
160if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
161  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
162  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Reader.plistt"
163  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "DC/FeatureLockdown/cServices/bUpdater"
164else
165  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Reader.plist'" "$STR_TARGET_PATH"
166  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 'DC/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
167  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
168fi
169
170# STR_SERV_FILE_PATH_READER2020="com.adobe.reader.servicesupdater.2020.plist"
171STR_TARGET_PATH="${STR_BASE_DIR_PATH}/${STR_SERV_FILE_PATH_READER2020}"
172if ! /usr/bin/defaults read "$STR_TARGET_PATH" FeatureLockDown; then
173  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array
174  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "~/Library/Preferences/com.adobe.Reader.plist"
175  /usr/bin/sudo /usr/bin/defaults write "$STR_TARGET_PATH" FeatureLockDown -array-add -string "2020/FeatureLockdown/cServices/bUpdater"
176else
177  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:0 '~/Library/Preferences/com.adobe.Reader.plist'" "$STR_TARGET_PATH"
178  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Set:FeatureLockDown:1 '2020/FeatureLockdown/cServices/bUpdater'" "$STR_TARGET_PATH"
179  /usr/bin/sudo /usr/libexec/PlistBuddy -c "Save" "$STR_TARGET_PATH"
180fi
181
182#アクセス権を修正
183for ITEM_FILE_NAME in "${LIST_PLIST_FILE_NAME[@]}"; do
184  STR_FILE_PATH="${STR_BASE_DIR_PATH}/${ITEM_FILE_NAME}"
185  /bin/echo "CHMOD: ${STR_FILE_PATH}"
186  /usr/bin/sudo /bin/chmod 644 "$STR_FILE_PATH"
187done
188
189exit
AppleScriptで生成しました

|

[com.adobe.ARMDC]アクロバット・リフレッシュマネージャー Acrobat Refresh Manager の停止(少し改良)


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
005use AppleScript version "2.8"
006use framework "Foundation"
007use framework "UniformTypeIdentifiers"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013#設定ファイルをロックする場合=TRUE
014#そのままにする場合=FALSE
015set boolZeroLock to true as boolean
016
017########################
018#まずは最初にARMの停止から
019set listPath to {"/Library/Application Support/Adobe/ARMDC/Application/Adobe Acrobat Updater.app/Contents/Library/LaunchServices/ARMNextCommunicator-Launchd.plist", "/Library/Application Support/Adobe/ARMDC/Application/Adobe Acrobat Updater.app/Contents/Library/LaunchServices/SMJobBlessHelper-Launchd.plist"} as list
020
021repeat with itemPath in listPath
022  set strPath to itemPath as text
023  ###
024  set strCommandText to ("/usr/bin/sudo /bin/launchctl stop -w  \"" & strPath & "\"") as text
025  log "\r" & strCommandText & "\r"
026  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
027  try
028    do shell script strExec
029  end try
030  ###
031  set strCommandText to ("/usr/bin/sudo /bin/launchctl unload -w  \"" & strPath & "\"") as text
032  log "\r" & strCommandText & "\r"
033  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
034  try
035    do shell script strExec
036  end try
037end repeat
038
039
040############
041set strCommandText to ("/usr/bin/sudo /bin/mkdir -p  \"/Library/LaunchAgents Disabled\"") as text
042log "\r" & strCommandText & "\r"
043set strExec to ("/bin/zsh -c '" & strCommandText & "'")
044try
045  do shell script strExec
046end try
047
048
049############
050set strCommandText to ("/usr/bin/sudo /bin/mkdir -p  \"/Library/LaunchDaemons Disabled\"") as text
051log "\r" & strCommandText & "\r"
052set strExec to ("/bin/zsh -c '" & strCommandText & "'")
053try
054  do shell script strExec
055end try
056
057
058
059########################
060#LaunchDaemonsの停止
061set listPath to {"/Library/LaunchDaemons/com.adobe.ARMDC.Communicator.plist", "/Library/LaunchDaemons/com.adobe.ARMDC.SMJobBlessHelper.plist"} as list
062
063repeat with itemPath in listPath
064  set strPath to itemPath as text
065  ###
066  set strCommandText to ("/usr/bin/sudo /bin/launchctl stop -w  \"" & strPath & "\"") as text
067  log "\r" & strCommandText & "\r"
068  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
069  try
070    do shell script strExec
071  end try
072  ###
073  set strCommandText to ("/usr/bin/sudo /bin/launchctl unload -w  \"" & strPath & "\"") as text
074  log "\r" & strCommandText & "\r"
075  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
076  try
077    do shell script strExec
078  end try
079end repeat
080
081########################
082#LaunchAgents
083set appFileManager to refMe's NSFileManager's defaultManager()
084set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSLocalDomainMask))
085set ocidLibraryDirPathURL to ocidURLsArray's firstObject()
086set ocidLaunchAgentsDirPathURL to ocidLibraryDirPathURL's URLByAppendingPathComponent:("LaunchAgents") isDirectory:(true)
087#コンテンツの収集
088set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
089set ocidKeyArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
090ocidKeyArray's addObject:(refMe's NSURLPathKey)
091ocidKeyArray's addObject:(refMe's NSURLNameKey)
092set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidLaunchAgentsDirPathURL) includingPropertiesForKeys:(ocidKeyArray) options:(ocidOption) |error| :(reference))
093set ocidSubPathURLArray to (item 1 of listResponse)
094#
095repeat with itemURL in ocidSubPathURLArray
096  set strFileName to (itemURL's lastPathComponent()) as text
097  if strFileName contains "ARMDCHelper" then
098    set strPath to itemURL's |path| as text
099    ###
100    set strCommandText to ("/usr/bin/sudo /bin/launchctl stop -w  \"" & strPath & "\"") as text
101    log "\r" & strCommandText & "\r"
102    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
103    try
104      do shell script strExec
105    end try
106    ###
107    set strCommandText to ("/usr/bin/sudo /bin/launchctl unload -w  \"" & strPath & "\"") as text
108    log "\r" & strCommandText & "\r"
109    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
110    try
111      do shell script strExec
112    end try
113    ###
114    set strCommandText to ("/usr/bin/sudo /bin/mv -f \"" & strPath & "\" \"/Library/LaunchAgents Disabled\"") as text
115    log "\r" & strCommandText & "\r"
116    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
117    try
118      do shell script strExec
119    end try
120    ### touch
121    set strCommandText to ("/usr/bin/sudo /ust/bin/touch  \"" & strPath & "\"") as text
122    log "\r" & strCommandText & "\r"
123    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
124    try
125      do shell script strExec
126    end try
127    ### truncate
128    set strCommandText to ("/usr/bin/sudo /usr/bin/truncate -s 0   \"" & strPath & "\"") as text
129    log "\r" & strCommandText & "\r"
130    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
131    try
132      do shell script strExec
133    end try
134    if boolZeroLock is true then
135      ### chflags
136      set strCommandText to ("/usr/bin/sudo  /usr/bin/chflags schg  \"" & strPath & "\"") as text
137      log "\r" & strCommandText & "\r"
138      set strExec to ("/bin/zsh -c '" & strCommandText & "'")
139      try
140        do shell script strExec
141      end try
142    end if
143  end if
144end repeat
145
146########################
147#LaunchDaemonsの移動
148set listPath to {"/Library/LaunchDaemons/com.adobe.ARMDC.Communicator.plist", "/Library/LaunchDaemons/com.adobe.ARMDC.SMJobBlessHelper.plist"} as list
149
150repeat with itemPath in listPath
151  set strPath to itemPath as text
152  ###
153  set strCommandText to ("/usr/bin/sudo /bin/mv -f \"" & strPath & "\" \"/Library/LaunchDaemons Disabled\"") as text
154  log "\r" & strCommandText & "\r"
155  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
156  try
157    do shell script strExec
158  end try
159  ### touch
160  set strCommandText to ("/usr/bin/sudo /ust/bin/touch  \"" & strPath & "\"") as text
161  log "\r" & strCommandText & "\r"
162  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
163  try
164    do shell script strExec
165  end try
166  ### truncate
167  set strCommandText to ("/usr/bin/sudo /usr/bin/truncate -s 0   \"" & strPath & "\"") as text
168  log "\r" & strCommandText & "\r"
169  set strExec to ("/bin/zsh -c '" & strCommandText & "'")
170  try
171    do shell script strExec
172  end try
173  ### chflags
174  if boolZeroLock is true then
175    ### chflags
176    set strCommandText to ("/usr/bin/sudo  /usr/bin/chflags schg  \"" & strPath & "\"") as text
177    log "\r" & strCommandText & "\r"
178    set strExec to ("/bin/zsh -c '" & strCommandText & "'")
179    try
180      do shell script strExec
181    end try
182  end if
183  
184  
185end repeat
186
187
188
189
190
AppleScriptで生成しました

|

Acrobatの自動アップデートを停止する(簡易版)


サンプルコード

サンプルソース(参考)
行番号ソース
001#! /bin/bash
002# com.cocolog-nifty.quicktimer.icefloe
003# Acrobat の自動アップデートを停止する
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "実行ユーザー(whoami): $USER_WHOAMI"
008if [ "$USER_WHOAMI" != "root" ]; then
009  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
010  /bin/echo "sudo で実行してください"
011  ### path to me
012  SCRIPT_PATH="${BASH_SOURCE[0]}"
013  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
014  /bin/echo "↑を実行してください"
015  /bin/echo "-------------"
016  /bin/echo ""
017  exit 1
018else
019  ###実行しているユーザー名
020  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
021  /bin/echo "コンソールユーザー(scutil): $CONSOLE_USER"
022  ###実行しているユーザー名
023  HOME_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
024  /bin/echo "実行ユーザー(HOME): $HOME_USER"
025  ###logname
026  LOGIN_NAME=$(/usr/bin/logname)
027  /bin/echo "ログイン名(logname): $LOGIN_NAME"
028  ###UID
029  USER_NAME=$(/usr/bin/id -un)
030  /bin/echo "ユーザー名(id): $USER_NAME"
031  ###STAT
032  STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
033  /bin/echo "STAT_USR(console): $STAT_USR"
034fi
035
036########################################
037##SCAチェック
038STR_PLIST_FILE_PATH="/Applications/Adobe Acrobat DC/Adobe Acrobat.app/Contents/Info.plist"
039if [ -f "$STR_PLIST_FILE_PATH" ]; then
040  NUM_BOOL_SCA=$(/usr/bin/defaults read "$STR_PLIST_FILE_PATH" AcroSCA)
041  if [ "$NUM_BOOL_SCA" = "1" ]; then
042    /bin/echo "SCA版インストールされています"
043  elif [ "$NUM_BOOL_SCA" = "0" ]; then
044    /bin/echo "従来版インストールされています"
045  fi
046fi
047/usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
048########################################
049##アップデートモードチェック FULL版
050STR_PLIST_FILE_PATH="/Library/Application Support/Adobe/ARMDC/Registered Products/com.adobe.acrobat.dc.plist"
051if [ -f "$STR_PLIST_FILE_PATH" ]; then
052  NUM_BOOL_MODE=$(/usr/bin/defaults read "$STR_PLIST_FILE_PATH" UpdateMode)
053  if [ "$NUM_BOOL_MODE" = "0" ]; then
054    /bin/echo "FULL版アップデートONです"
055    /usr/bin/sudo /usr/bin/defaults write "$STR_PLIST_FILE_PATH" UpdateMode -int 3
056  elif [ "$NUM_BOOL_MODE" = "3" ]; then
057    /bin/echo "FULL版アップデートOFFです"
058  fi
059fi
060/usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
061########################################
062##アップデートモードチェック MINI版
063STR_PLIST_FILE_PATH="/Library/Application Support/Adobe/ARMDC/Registered Products/com.adobe.reader.dc.plist"
064if [ -f "$STR_PLIST_FILE_PATH" ]; then
065  NUM_BOOL_MODE=$(/usr/bin/defaults read "$STR_PLIST_FILE_PATH" UpdateMode)
066  if [ "$NUM_BOOL_MODE" = "0" ]; then
067    /bin/echo "MINI版アップデートONです"
068    /usr/bin/sudo /usr/bin/defaults write "$STR_PLIST_FILE_PATH" UpdateMode -int 3
069  elif [ "$NUM_BOOL_MODE" = "3" ]; then
070    /bin/echo "MINI版アップデートOFFです"
071  fi
072fi
073/usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
074########################################
075##ユーザー設定にも設定 従来版Reader版
076STR_PLIST_FILE_PATH="/Users/${STAT_USR}/Library/Preferences/com.adobe.Reader.plist"
077if [ -f "$STR_PLIST_FILE_PATH" ]; then
078  if ! /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Print:DC:FeatureLockdown:bUpdater" "$STR_PLIST_FILE_PATH"; then
079    /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Add:DC:FeatureLockdown:bUpdater bool false" "$STR_PLIST_FILE_PATH"
080  else
081    /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Set:DC:FeatureLockdown:bUpdater bool false " "$STR_PLIST_FILE_PATH"
082  fi
083fi
084/usr/bin/sudo -u "$STAT_USR" /bin/chmod 644 "$STR_PLIST_FILE_PATH"
085########################################
086##ユーザー設定にも設定 SCA版従来版 Acrobat Mini共通
087STR_PLIST_FILE_PATH="/Users/${STAT_USR}/Library/Preferences/com.adobe.Acrobat.Pro.plist"
088if [ -f "$STR_PLIST_FILE_PATH" ]; then
089  if ! /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Print:DC:FeatureLockdown:bUpdater" "$STR_PLIST_FILE_PATH"; then
090    /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Add:DC:FeatureLockdown:bUpdater bool false" "$STR_PLIST_FILE_PATH"
091  else
092    /usr/bin/sudo -u "$STAT_USR" /usr/libexec/PlistBuddy -c "Set:DC:FeatureLockdown:bUpdater bool false " "$STR_PLIST_FILE_PATH"
093  fi
094fi
095/usr/bin/sudo -u "$STAT_USR" /bin/chmod 644 "$STR_PLIST_FILE_PATH"
096########################################
097##LaunchAgents
098STR_LCTL_FILE_NAME=$(/bin/ls "/Library/LaunchAgents" | grep com.adobe.ARMDCHelper)
099STR_PLIST_FILE_PATH="/Library/LaunchAgents/$STR_LCTL_FILE_NAME"
100if [ -f "$STR_PLIST_FILE_PATH" ]; then
101  if ! /usr/bin/defaults read "$STR_PLIST_FILE_PATH" RunAtLoad; then
102    /usr/bin/sudo /usr/bin/defaults write "$STR_PLIST_FILE_PATH" RunAtLoad -bool false
103  else
104    /usr/bin/sudo /usr/bin/defaults write "$STR_PLIST_FILE_PATH" RunAtLoad -bool false
105  fi
106fi
107/usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
108
109########################################
110## 設定退避フォルダ作成
111/bin/mkdir -p "/Library/LaunchAgents Disabled"
112/bin/mkdir -p "/Library/LaunchDaemons Disabled"
113/usr/bin/sudo -u "$STAT_USR" /bin/mkdir -p "/Users/${STAT_USR}/Library/LaunchAgents Disabled"
114
115/bin/chmod 755 "/Library/LaunchAgents Disabled"
116/bin/chmod 755 "/Library/LaunchDaemons Disabled"
117/usr/bin/sudo -u "$STAT_USR" /bin/chmod 700 "/Users/${STAT_USR}/Library/LaunchAgents Disabled"
118
119########################################
120##LaunchAgents
121STR_PLIST_FILE_PATH="/Library/LaunchAgents/com.adobe.GC.Invoker-1.0.plist"
122if [ -f "$STR_PLIST_FILE_PATH" ]; then
123  /bin/echo "$STR_PLIST_FILE_PATH ロックされたファイルを解除します"
124  /usr/bin/sudo /usr/bin/chflags nouchg "$STR_PLIST_FILE_PATH"
125  if [ ! -s "$STR_PLIST_FILE_PATH" ]; then
126    /bin/echo "$STR_PLIST_FILE_PATH すでに処理済み 中身が空"
127    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
128  else
129    #移動して
130    /usr/bin/sudo /bin/mv "$STR_PLIST_FILE_PATH" "/Library/LaunchAgents Disabled"
131    #空のファイルを作る
132    /usr/bin/sudo /usr/bin/touch "$STR_PLIST_FILE_PATH"
133    /usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
134    #ロック して変更できないようにする
135    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
136  fi
137fi
138########################################
139##LaunchAgents
140STR_PLIST_FILE_PATH="/Library/LaunchAgents/com.adobe.GC.AGM.plist"
141if [ -f "$STR_PLIST_FILE_PATH" ]; then
142  /bin/echo "$STR_PLIST_FILE_PATH ロックされたファイルを解除します"
143  /usr/bin/sudo /usr/bin/chflags nouchg "$STR_PLIST_FILE_PATH"
144  if [ ! -s "$STR_PLIST_FILE_PATH" ]; then
145    /bin/echo "$STR_PLIST_FILE_PATH すでに処理済み 中身が空"
146    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
147  else
148    #移動して
149    /usr/bin/sudo /bin/mv "$STR_PLIST_FILE_PATH" "/Library/LaunchAgents Disabled"
150    #空のファイルを作る
151    /usr/bin/sudo /usr/bin/touch "$STR_PLIST_FILE_PATH"
152    /usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
153    #ロック して変更できないようにする
154    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
155  fi
156fi
157
158########################################
159##LaunchDaemons
160STR_PLIST_FILE_PATH="/Library/LaunchDaemons/com.adobe.agsservice.plist"
161if [ -f "$STR_PLIST_FILE_PATH" ]; then
162  /bin/echo "$STR_PLIST_FILE_PATH ロックされたファイルを解除します"
163  /usr/bin/sudo /usr/bin/chflags nouchg "$STR_PLIST_FILE_PATH"
164  if [ ! -s "$STR_PLIST_FILE_PATH" ]; then
165    /bin/echo "$STR_PLIST_FILE_PATH すでに処理済み 中身が空"
166    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
167  else
168    #移動して
169    /usr/bin/sudo /bin/mv "$STR_PLIST_FILE_PATH" "/Library/LaunchDaemons Disabled"
170    #空のファイルを作る
171    /usr/bin/sudo /usr/bin/touch "$STR_PLIST_FILE_PATH"
172    /usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
173    #ロック して変更できないようにする
174    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
175  fi
176fi
177
178########################################
179##LaunchDaemons
180STR_PLIST_FILE_PATH="/Library/LaunchDaemons/com.adobe.ARMDC.SMJobBlessHelper.plist"
181if [ -f "$STR_PLIST_FILE_PATH" ]; then
182  /bin/echo "$STR_PLIST_FILE_PATH ロックされたファイルを解除します"
183  /usr/bin/sudo /usr/bin/chflags nouchg "$STR_PLIST_FILE_PATH"
184  if [ ! -s "$STR_PLIST_FILE_PATH" ]; then
185    /bin/echo "$STR_PLIST_FILE_PATH すでに処理済み 中身が空"
186    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
187  else
188    #移動して
189    /usr/bin/sudo /bin/mv "$STR_PLIST_FILE_PATH" "/Library/LaunchDaemons Disabled"
190    #空のファイルを作る
191    /usr/bin/sudo /usr/bin/touch "$STR_PLIST_FILE_PATH"
192    /usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
193    #ロック して変更できないようにする
194    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
195  fi
196fi
197
198########################################
199##LaunchAgents
200STR_PLIST_FILE_PATH="/Users/${STAT_USR}/Library/LaunchAgents/com.adobe.GC.Invoker-1.0.plist"
201if [ -f "$STR_PLIST_FILE_PATH" ]; then
202  /bin/echo "$STR_PLIST_FILE_PATH ロックされたファイルを解除します"
203  /usr/bin/sudo /usr/bin/chflags nouchg "$STR_PLIST_FILE_PATH"
204  if [ ! -s "$STR_PLIST_FILE_PATH" ]; then
205    /bin/echo "$STR_PLIST_FILE_PATH すでに処理済み 中身が空"
206    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
207  else
208    #移動して
209    /usr/bin/sudo /bin/mv "$STR_PLIST_FILE_PATH" "/Users/${STAT_USR}/Library/LaunchAgents Disabled"
210    #空のファイルを作る
211    /usr/bin/sudo /usr/bin/touch "$STR_PLIST_FILE_PATH"
212    /usr/bin/sudo /bin/chmod 644 "$STR_PLIST_FILE_PATH"
213    #ロック して変更できないようにする
214    /usr/bin/sudo /usr/bin/chflags uchg "$STR_PLIST_FILE_PATH"
215  fi
216fi
217
218
219
220
221
222exit 0
AppleScriptで生成しました

|

メモ ARMDC(Acrobat Update Helper)

ARMDCはManifestを参照するから
単体起動はできないかな(最近は昔はできたけど)
何か因数渡せばいいのかもしれないけど…
基本的には
Acrobat Update Helperは電源ONのログイン時にロードされて
$HOME/Library/Preferences/Adobe/ARMDC
にある
com.adobe.reader.dc
com.adobe.ARMDCHelperの
LastCheckForUpdateの日付を見てチェックするか?を決めています
チェックのタイミングは
インストール時に設定される
iRandomの値で決めていると『思われる』なので
デバイスによってマチマチなのでは『ないか』と思っています。

|

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat Python Acrobat Reader Acrobat Reader Localized Acrobat Reference Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Admin XProtect Adobe Adobe Bridge Adobe FDKO Adobe Fonts Adobe Reference Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode Decode Barcode QR Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time defaults delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode HTML Entity Encode UTF8 Error EXIFData ffmpeg File File Name Finder Firefox Folder FolderAction Fonts Fonts ATS Fonts Python Foxit GIF github Guide HTML Icon Illustrator Image Events Image2PDF ImageOptim Input Dictionary iPhone iWork Javascript Jedit Json Label Language Leading Zero List locationd LRC lsappinfo m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Microsoft Fonts Microsoft Office Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMetadataItem NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDF Pymupdf PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline PDFView perl Photoshop PlistBuddy pluginkit plutil postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom webarchive webp Wifi Windows XML XML EPUB XML HTML XML LSSharedFileList XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML xmllint XML XMP YouTube zoom