tis-adobereader
2024.2.20895-84
Adobe Acrobat est une famille de logiciels d'application et de services web développés par Adobe Inc. pour visualiser, créer, manipuler, imprimer et gérer des fichiers Portable Document Format (PDF)
72741 téléchargements
Voir le résultat de la construction Voir l'analyse de VirusTotal
![tis-adobereader icon](/wapt/icons/e08ef23b951752553b93f621e169cbb918ded4eb56c504ed32f7da48d7e31b7c.png)
Description
- package : tis-adobereader
- name : Adobe Acrobat Reader
- version : 2024.2.20895-84
- categories : Office,Utilities
- maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Simon Fonteneau
- installed_size : 1284008424
- editor : Adobe Inc.
- licence : proprietary_free,wapt_public
- signature_date : 2024-06-30T19:01:48.354006
- size : 421.53 Mo
- locale : all
- target_os : windows
- impacted_process : Acrobat,AcrobatInfo,AcroBroker,AcroTextExtractor,AcroLayoutRecognizer,AcroCEF,AcroRd32,AcroRd32Info,AdobeCollabSync,RdrCEF,RdrServicesUpdater
- architecture : all
- Page d'accueil : https://adobe.com/
- Cela dépend :
- Conflits :
control
package : tis-adobereader
version : 2024.2.20895-84
architecture : all
section : base
priority : optional
name : Adobe Acrobat Reader
categories : Office,Utilities
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Simon Fonteneau
description : Adobe Acrobat is a family of application software and Web services developed by Adobe Inc. to view, create, manipulate, print and manage Portable Document Format (PDF) files
depends : tis-vcredist
conflicts : tis-adobe-acrobat-pro
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources : https://get.adobe.com/reader/
installed_size : 1284008424
impacted_process : Acrobat,AcrobatInfo,AcroBroker,AcroTextExtractor,AcroLayoutRecognizer,AcroCEF,AcroRd32,AcroRd32Info,AdobeCollabSync,RdrCEF,RdrServicesUpdater
description_fr : Adobe Acrobat est une famille de logiciels d'application et de services web développés par Adobe Inc. pour visualiser, créer, manipuler, imprimer et gérer des fichiers Portable Document Format (PDF)
description_pl : Adobe Acrobat to rodzina aplikacji i usług internetowych opracowanych przez firmę Adobe Inc. do przeglądania, tworzenia, obróbki, drukowania i zarządzania plikami w formacie Portable Document Format (PDF)
description_de : Adobe Acrobat ist eine von Adobe Inc. entwickelte Familie von Anwendungssoftware und Webdiensten zum Anzeigen, Erstellen, Bearbeiten, Drucken und Verwalten von Dateien im Portable Document Format (PDF)
description_es : Adobe Acrobat es una familia de aplicaciones y servicios web desarrollados por Adobe Inc. para visualizar, crear, manipular, imprimir y gestionar archivos en formato PDF (Portable Document Format)
description_pt : O Adobe Acrobat é uma família de software de aplicação e serviços Web desenvolvidos pela Adobe Inc. para visualizar, criar, manipular, imprimir e gerir ficheiros Portable Document Format (PDF)
description_it : Adobe Acrobat è una famiglia di software applicativi e servizi Web sviluppati da Adobe Inc. per visualizzare, creare, manipolare, stampare e gestire file in formato PDF (Portable Document Format)
description_nl : Adobe Acrobat is een reeks applicatiesoftware en webservices ontwikkeld door Adobe Inc. voor het bekijken, maken, manipuleren, afdrukken en beheren van Portable Document Format (PDF)-bestanden
description_ru : Adobe Acrobat - это семейство прикладного программного обеспечения и веб-сервисов, разработанных компанией Adobe Inc. для просмотра, создания, манипулирования, печати и управления файлами Portable Document Format (PDF)
audit_schedule :
editor : Adobe Inc.
keywords : adobe,reader,acrobat,dc,pdf,portable,document,format,print,view
licence : proprietary_free,wapt_public
homepage : https://adobe.com/
package_uuid : 6b42a5df-689b-4018-b318-1ecd72fbbef6
valid_from :
valid_until :
forced_install_on :
changelog : https://helpx.adobe.com/acrobat/release-note/release-notes-acrobat-reader.html
min_os_version : 6.1
max_os_version : 10.0
icon_sha256sum : e08ef23b951752553b93f621e169cbb918ded4eb56c504ed32f7da48d7e31b7c
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : ifEql6LdgOAtMU4TeCNlTv1FzRFbqHHCJd2Rx0qkMrj8ybTVhCM7o+3qqXJmQ8Modgc4jJ9b7fhZJVL0f2uUKTHiaeVGZJ5w5GdCDLE+uIpBw3uyi+SpVx3mRLdYeQUDS7YfUAyPrXnJ1VLqGcQPhALG6I4hxIFsXqpI++PdCMYGu7EV88wh4UpYoanReaHdJuoJcnLUozkTDJJab84vqHU8NsavqCPTBvxxlosR9KOV8GX40uUT2BuTAh4XSzZV5SrqnS3WEuo9eIfLoqhJBsjIc9BsV5NRH6KtKN//J2rl6wpWiLdcHcJwIpPQTX9EnwHEj1RRSsUyCZnXH0Lu+w==
signature_date : 2024-06-30T19:01:48.354006
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
Setup.py
# -*- coding: utf-8 -*-
from setuphelpers import *
import os
import chardet
import time
r"""
https://silentinstallhq.com/adobe-reader-dc-silent-install-how-to-guide/
AcroRdrDC2300320215_en_US.exe /sAll /rs /msi EULA_ACCEPT=YES /L*V "%WINDIR%\Temp\AdobeReader-Install.log"
MsiExec.exe /i "%~dp0AcroRead.msi" PATCH="%~dp0AcroRdrDCUpd2300320215.msp" /qn /L*V "%WINDIR%\Temp\AdobeReader-Install.log"
https://www.adobe.com/devnet-docs/acrobatetk/tools/DesktopDeployment/cmdline.html
Installation 9.0 & later ENABLE_CACHE_FILES 1 (the default) enables setup file caching of the installer files on the local system. The opposite of DISABLE_CACHE.
Installation 10.0 & later DISABLE_CACHE 1 disables setup file caching. The opposite of ENABLE_CACHE_FILES.
"C:\Windows\system32\msiexec.exe" /i {AC76BA86-7AD7-FFFF-7B44-AC0F074E4100} /L*V "C:\Windows\Temp\AdobeReader-Install.log DISABLE_CACHE=1 REBOOT="ReallySuppress" PATCH="C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\RDC\AcroRdrDCUpd2300320215_MUI.msp" /qn
"C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\RDC\setup.exe" /sAll /rs /msi /L*V "C:\Windows\Temp\AdobeReader-Install.log DISABLE_CACHE=1
"C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\setup.exe" /sAll /rs /msi DISABLE_CACHE=1
"C:\Windows\system32\msiexec.exe" /i "C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\AcroRead.msi" TRANSFORMS="" DISABLE_CACHE=1 REBOOT="ReallySuppress" PATCH="C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\AcroRdrDCUpd2300320215_MUI.msp" /qn
some keys examples: https://github.com/bmrf/standalone_scripts/blob/master/tron_guid_whitelist.txt
# 32bit app
{
"key":"{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}",
"name":"Adobe Acrobat Reader MUI",
"version":"23.003.20215",
"install_date":"2023-07-04 00:00:00",
"install_location":"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\",
"uninstall_string":"MsiExec.exe /I{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}",
"publisher":"Adobe Systems Incorporated",
"system_component":0,
"win64":false
}
# 64bit app
{
"key":"{AC76BA86-1033-FF00-7760-BC15014EA700}",
"name":"Adobe Acrobat (64-bit)",
"version":"23.003.20215",
"install_date":"2023-07-04 00:00:00",
"install_location":"C:\\Program Files\\Adobe\\Acrobat DC\\",
"uninstall_string":"MsiExec.exe /I{AC76BA86-1033-FF00-7760-BC15014EA700}",
"publisher":"Adobe",
"system_component":0,
"win64":true
}
"""
app_scheduled_tasks = ["Adobe Acrobat Update Task"]
app_services = ["AdobeARMservice"]
def install():
software_version = control.get_software_version().split("20", 1)[-1] # correcting version
log_path = makepath(r"C:\Windows\Temp", "AdobeReader-Install.log")
upgrade_log_path = makepath(r"C:\Windows\Temp", "AdobeReader-Upgrade.log")
silentflags = f'/sAll /rs /msi EULA_ACCEPT=YES /L*V "{log_path}"'
if ensure_list(control.architecture)[0] == "x64":
app_uninstallkey = "{AC76BA86-1033-FF00-7760-BC15014EA700}"
else:
app_uninstallkey = "{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}"
# Uninstalling old products and app if install is forced
for to_uninstall in installed_softwares("Adobe Acrobat "):
do_uninstall = False
# *7B44-AC0F074E4100} => Adobe Acrobat Reader DC*
# *7760-BC15014EA700} => Adobe Acrobat (64-bit)
# *7760-BC15014EA700} => Adobe Acrobat DC (64-bit) => Pro version ?
if not "Pro" in to_uninstall["name"] or not "MUI" in to_uninstall["name"]:
if to_uninstall["key"].endswith("7B44-AC0F074E4100}") or to_uninstall["key"].endswith("7760-BC15014EA700}"):
if not "Adobe Acrobat DC (64-bit)" in to_uninstall["name"] and not "Adobe Acrobat (64-bit)" in to_uninstall["name"]:
do_uninstall = True
print(
f'INFO: {to_uninstall["name"]} ({to_uninstall["version"]}) may be a Pro version, in which case the installation will fail, but you can still remove it with a force install.'
)
if force:
print(f'DANGER: {to_uninstall["name"]} may be a Pro version and will be remove because the install is forced.')
do_uninstall = True
if do_uninstall:
print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
killalltasks(ensure_list(control.impacted_process))
run(uninstall_cmd(to_uninstall["key"]))
wait_uninstallkey_absent(to_uninstall["key"])
if Version(to_uninstall["version"]) == Version(control.get_software_version()) and iswin64() and not to_uninstall["win64"]:
print(
f'INFO: {to_uninstall["name"]} (32-bit) version is installed and up-to-date. You can force-install this package to migrate to the (64-bit) version after removing the "architecture : all" package from your repo.' # or changing his "max_os_version" to "10.0"
)
# else:
# print(
# f'INFO: {to_uninstall["name"]} version is installed. You can force-install this package to migrate to the (32-bit) version (not recommended) after removing the "architecture : x64" package from your repo and changing "max_os_version" to "". '
# )
# Removing application desktop shortcut if allowed
if params.get("remove_desktop_shortcuts"):
silentflags += " DISABLEDESKTOPSHORTCUT=1"
remove_desktop_shortcut("Acrobat Reader DC")
remove_desktop_shortcut("Adobe Acrobat")
# Installing software
bin_name = glob.glob("AcroRdrDC*.exe")[0]
try:
install_exe_if_needed(
bin_name,
silentflags=silentflags,
key=app_uninstallkey,
# min_version="24.001.20615",
min_version=software_version,
timeout=1200,
)
except Exception as e:
print(e)
with open(log_path, "r", encoding=detect_file_encoding(log_path)) as f:
log_content = f.read()
error(log_content)
# # Upgrading software
# bin_name = glob.glob("AcroRdrDC*.msp")[0]
# if need_install(app_uninstallkey, min_version=software_version):
# print(r"Installing: %s (%s)" % (bin_name, software_version))
# try:
# run(f'msiexec.exe /p "{bin_name}" /norestart /quiet ALLUSERS=1 EULA_ACCEPT=YES /L*V "{upgrade_log_path}"', timeout=1200)
# except Exception as e:
# print(e)
# with open(upgrade_log_path, "r", encoding=detect_file_encoding(upgrade_log_path)) as f:
# log_content = f.read()
# error(log_content)
# else:
# print("MSP setup %s already installed. Skipping" % bin_name)
# if need_install(app_uninstallkey, min_version=software_version):
# error("%s upgrade failed." % bin_name)
# Disabling application scheduled tasks
for task_name in app_scheduled_tasks:
if task_exists(task_name):
try:
disable_task(task_name)
except:
print(f"Unable to disable the task_name: {task_name}")
# Changing default start mode of the application services
for service_name in app_services:
set_service_start_mode(service_name, "Disabled")
def uninstall():
time.sleep(30)
# 64bit app
editor_dir = makepath(programfiles, "Adobe")
app_dir = makepath(editor_dir, "Acrobat DC", "Acrobat")
if isdir(app_dir):
remove_tree(app_dir)
if remove_empty_directories(editor_dir):
remove_tree(editor_dir)
# 32bit app
editor_dir = makepath(programfiles32, "Adobe")
app_dir = makepath(editor_dir, "Acrobat Reader DC", "Reader")
if isdir(app_dir):
remove_tree(app_dir)
if remove_empty_directories(editor_dir):
remove_tree(editor_dir)
def remove_empty_directories(root_directory):
if os.path.exists(root_directory):
for dirpath, dirnames, filenames in os.walk(root_directory, topdown=False):
if not any(os.scandir(dirpath)):
os.rmdir(dirpath)
print(f"Removed empty directory: {dirpath}")
def detect_file_encoding(file_path):
"""Detect the encoding of a file.
Args:
file_path (str): The path to the file to be analyzed.
Returns:
str: The detected character encoding of the file.
>>> detect_file_encoding(file_path)
'UTF-8-SIG'
"""
with open(file_path, "rb") as file:
raw_data = file.read()
result = chardet.detect(raw_data)
return result["encoding"]
update_package.py
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
from waptutils import get_sha256
"""
https://get.adobe.com/reader/enterprise/
https://get.adobe.com/reader/download?os=Windows+11&name=Reader+DC+2023.003.20215+MUI+for+Windows-64bit&lang=mui&nativeOs=Windows+10&accepted=&declined=&preInstalled=&site=enterprise
https://get.adobe.com/reader/download?os=Windows+7&name=Reader+DC+2023.003.20215+MUI+for+Windows-32bit&lang=mui&nativeOs=Windows+10&accepted=&declined=&preInstalled=&site=enterprise
https://ardownload2.adobe.com/pub/adobe/acrobat/win/AcrobatDC/2300320215/AcroRdrDCx642300320215_MUI.exe
https://ardownload2.adobe.com/pub/adobe/reader/win/AcrobatDC/2300320215/AcroRdrDC2300320215_MUI.exe
https://silentinstallhq.com/adobe-reader-dc-silent-install-how-to-guide/
Enter the following command to extract the MSI:
AcroRdrDC2300320215_en_US.exe -sfx_o"C:\Downloads\ReaderDC" -sfx_ne
"""
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
update_dict = {
"bin_contains": {
"windows": "_MUI.msp",
"mac": "_MUI.dmg",
},
"bin_name_to_substitute": {
"windows-all": "AcroRdrDC%s_MUI.exe",
"windows-x64": "AcroRdrDCx64%s_MUI.exe",
"mac-all": "AcroRdrDC_%s_MUI.dmg",
},
}
# # Getting base installer
# if control.target_os == "windows":
# if iswin64():
# # https://ardownload2.adobe.com/pub/adobe/acrobat/win/AcrobatDC/2400120615/AcroRdrDCx642400120615_MUI.exe
# binaries_dict = {"AcroRdrDCx642400120615_MUI.exe": "8820bff54abd9c636bbc7fb11a5ed338de5dc72222055d22983a7b86388a3f1d"}
# else:
# # https://ardownload2.adobe.com/pub/adobe/reader/win/AcrobatDC/2400120615/AcroRdrDC2400120615_MUI.exe
# binaries_dict = {"AcroRdrDC2400120615_MUI.exe": "c34f14e5e1c5ffae7b0422e92cb907d72b1b243b7a0c085e55c1601b6838f1c1"}
# for bin_name in binaries_dict:
# # http is ok since we are verifying sha256
# download_url = "http://srvtemplates.ad.tranquil.it/binary_cache/" + (bin_name)
# sha256 = binaries_dict[bin_name]
# if isfile(bin_name):
# if get_sha256(bin_name) != sha256:
# remove_file(bin_name)
# print("Download URL is: %s" % download_url)
# if not isfile(bin_name):
# print("Downloading: %s" % bin_name)
# wget(download_url, bin_name, sha256=sha256, proxies=proxies)
# else:
# print("Binary is present: %s" % bin_name)
url = "https://helpx.adobe.com/acrobat/release-note/release-notes-acrobat-reader.html"
# Getting latest version from official sources
print("URL used is: %s" % url)
for release in bs_find_all(url, "a", "disablelinktracking", "false", proxies=proxies):
if not release.text.startswith("DC "):
continue
for release_url in bs_find_all(release["href"], "a", "class", "reference external", proxies=proxies):
if release_url["href"].endswith(update_dict["bin_contains"][control.target_os]):
latest_bin = release_url["href"].split("/")[-1]
if control.architecture == "x64" and not "x64" in latest_bin:
continue
download_url_part = release_url["href"].rsplit("/", 1)[0]
version_adobe = download_url_part.split("/")[-1].lower()
web_version = release.text.split("(")[-1].split(")")[0].lower()
break
break
version = "20%s" % web_version
if "x" in version:
count_x = version.count("x")
missing_digits = version_adobe[-count_x:]
version = version.split("x", 1)[0] + missing_digits
latest_bin = update_dict["bin_name_to_substitute"][f"{control.target_os}-{control.architecture}"] % version_adobe
download_url = download_url_part + "/" + latest_bin
# if f"{control.target_os}-{control.architecture}" == "windows-x64":
# download_url.replace("adobe/reader", "adobe/acrobat")
# else:
# download_url.replace("adobe/acrobat", "adobe/reader")
# Downloading latest binaries
print("Latest %s version is: %s" % (control.name, version))
print("Download URL is: %s" % download_url)
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(download_url, latest_bin, proxies=proxies)
else:
print("Binary is present: %s" % latest_bin)
# Deleting outdated binaries
remove_outdated_binaries(latest_bin)
# arch_list = ensure_list(control.architecture)
# remove_outdated_binaries(version, filename_contains=("x64" if "x64" in arch_list else "x86" if "x86" in arch_list else []))
# # Checking version from file
# if get_os_name() == "Windows" and "windows" in control.target_os.lower():
# # version_from_file = "20" + get_version_from_binary(latest_bin)
# version_from_file = "20" + get_msp_properties(latest_bin)
# if Version(version_from_file, 4) == Version(version, 4):
# print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
# else:
# error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")
# Changing version of the package
if Version(version, 4) > Version(control.get_software_version(), 4):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Validating or not update-package-sources
return package_updated
# # Changing version of the package and validating update-package-sources
# return complete_control_version(control, version)
5253c309dbc8879e5c5ec28775aa35cd53ab28841cc7eeb075358403ebcdb62a : setup.py
: __pycache__
d6bb02a95816704e8787630628fe282bf73970d72261ae421b51c61ddcf620a7 : update_package.py
e08ef23b951752553b93f621e169cbb918ded4eb56c504ed32f7da48d7e31b7c : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
7ae36379a9353173d23b27e7877095a9eed6f00c227078ea46fa46e10cc9460c : WAPT/changelog.txt
6131191ca6485543cfa91c28760688b88ba895642c39db9f61a1792704efc39e : AcroRdrDC2400220895_MUI.exe
e3234c50b10510612b137f7c3a35844eeb2132c866e85c3b1679d0b725b18411 : luti.json
997f4c724531e9cd389126d7f869aeac4c6c97a870858f79847b97e5980cba79 : WAPT/control
Changelog
84
===
- No longer use a base configuration, instead you should import and edit the package: tis-adobe-acrobat-config-template
- Logging file are now printed in WAPT Console when crashing.
- Uninstall code reduced.
- Fix update_package()
80
===
- Printing more information about Pro version workaround
79
===
- Major code improvement
- Switching to EXE (containing msi and msp file)
- Now printing what is happening in install
- Now uninstalling the software if install is forced (to fix: "Setup has detected that you already have a more functional product installed. Setup will now terminate")
- Windows 7 is still maintained as 32bit installer
- Code is unique for package architecture "all" and "x64", even if 64bit app is called Adobe Acrobat and 32bit app is called Acrobat Reader
- Disabling WelcomeScreen
- Disabling some pop-ups
- Disabling automatic updates, telemetry and intrusive services
- Zoom 100% by default
- Manipulating registry with dicts to handle multi architecture pathes
- Avoiding AdobeCollabSync.exe to run on startup
- Avoiding uninstallation on every installs
- We need further tests to determine if "Adobe Acrobat DC (64-bit)" is the only Pro version