Skip to content

Commit

Permalink
Merge pull request #998 from Atlas-OS/dev
Browse files Browse the repository at this point in the history
  • Loading branch information
he3als authored Apr 6, 2024
2 parents eacde7c + 3775372 commit 25b24cf
Show file tree
Hide file tree
Showing 464 changed files with 4,739 additions and 4,677 deletions.
File renamed without changes.
71 changes: 44 additions & 27 deletions .github/workflows/apbx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,18 @@ name: Create and Validate Atlas Playbook
on:
push:
paths:
- 'src/**'
- "src/**"

env:
PACKAGE_PATH: '..\Atlas\src\playbook\Executables\AtlasModules\Packages'
SXSC_REPO: 'https://github.com/Atlas-OS/sxsc'
SXSC_REPO: "https://github.com/Atlas-OS/sxsc"

jobs:
package-build:
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
token: ${{ secrets.RUNNER_SECRET }}
Expand All @@ -29,54 +28,72 @@ jobs:
- 'src/sxsc/*.yaml'
- name: Copy modified .yamls
if: steps.changed-files.outputs.sxsc_any_changed == 'true'
id: copy_yamls
run: |
$configs = "..\configs"
$sxsc = '.\src\sxsc'
$configs = '..\configs'
mkdir $configs | Out-Null
$changedFiles = "${{ steps.changed-files.outputs.sxsc_all_changed_files }}" -split ' '
if ('${{ steps.changed-files.outputs.sxsc_any_changed }}' -eq 'true') {
$changedFiles = '${{ steps.changed-files.outputs.sxsc_all_changed_files }}' -split ' '
} elseif (Test-Path "$sxsc\regenAllConfigs") {
Write-Output "Regenerating all configs..."
Remove-Item -Path "$sxsc\regenAllConfigs" -Force
Remove-Item -Path ".\src\playbook\Executables\AtlasModules\Packages\*.cab" -Force -Recurse
$changedFiles = Get-ChildItem $sxsc -Filter *.yaml
} else {
Write-Output "Not building any packages, no sxsc config changes detected."
"runSxsc=false" >> $env:GITHUB_ENV
exit
}
"runSxsc=true" >> $env:GITHUB_ENV
foreach ($file in $changedFiles) {
Write-Output "Copying: $file"
Copy-Item $file $configs -Force
Write-Output "Copying: $file"
Copy-Item $file $configs -Force
}
- name: Clone the sxsc repository
run: |
git clone --depth=1 ${{ env.SXSC_REPO }}
Copy-Item -Path "configs" -Destination ".\sxsc\configs" -Recurse -Force
working-directory: ..
if: ${{ steps.copy_yamls.outcome != 'skipped' }}
if: env.runSxsc == 'true'

- name: Build CAB
run: |
Write-Host "Installing dependencies..."
Write-Output "Installing dependencies..."
pip install -r requirements.txt | Out-Null
$packagePath = "${{ env.PACKAGE_PATH }}"
mkdir $packagePath -EA SilentlyContinue | Out-Null
Get-ChildItem -Recurse "configs" -Filter *.yaml | ForEach-Object {
Write-Host "`nProcessing $($_.Name)`n------------------------------------------------------"
$atlasSrcPath = '..\Atlas\src\'
$packagePath = "$atlasSrcPath\playbook\Executables\AtlasModules\Packages"
mkdir $packagePath -EA 0 | Out-Null
Get-ChildItem "configs" -Filter *.yaml | ForEach-Object {
Write-Output "`n`nProcessing $($_.Name)`n------------------------------------------------------"
Copy-Item -Path $_.FullName -Destination "cfg.yaml" -Force | Out-Null
Write-Host "Generating package files..."
$folderDir = ".\$atlasSrcPath\sxsc\$($_.Name -replace '-Arm','')"
if (Test-Path $folderDir -PathType Container) {
Write-Output "Copying $($_.Name)'s files..."
Copy-Item -Path "$folderDir\*" -Destination '.\' -Recurse -Force | Out-Null
}
Write-Output "Generating package files..."
python sxsc.py
if ($LASTEXITCODE -ne 0) { exit 1 }
Write-Host "Building package..."
Write-Output "Building package..."
.\build.bat
Write-Host "Copying package to AtlasModules..."
Write-Output "Copying package to AtlasModules..."
Get-ChildItem -File -Recurse -Filter *.cab | ForEach-Object {
Copy-Item -Path $_.FullName -Destination $packagePath -Force
}
Write-Host "Cleaning up..."
Write-Output "Cleaning up..."
.\clean.bat
}
working-directory: ..\sxsc
if: ${{ steps.copy_yamls.outcome != 'skipped' }}
if: env.runSxsc == 'true'

- name: Commit and push changes
run: |
Expand All @@ -86,20 +103,20 @@ jobs:
git commit -m "feat: auto-update CAB packages ($($env:GITHUB_SHA.Substring(0, 8)))"
git push
working-directory: src\playbook\Executables\AtlasModules\Packages
if: ${{ steps.copy_yamls.outcome != 'skipped' }}
if: env.runSxsc == 'true'

build:
needs: package-build
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}

- name: Validate YAML files
run: 'yamllint -d "{extends: relaxed, rules: {line-length: disable, new-line-at-end-of-file: disable, trailing-spaces: disable}}" src/playbook/.'
run: 'yamllint -d "{extends: relaxed, rules: {empty-lines: disable, line-length: disable, new-line-at-end-of-file: disable, trailing-spaces: disable}}" src/playbook/.'

- name: Configure playbook
id: config-playbook
Expand All @@ -110,9 +127,9 @@ jobs:
sed -i '/<ProductCode>/d' playbook.conf
echo "Change description of playbook..."
sed -i 's|<Description>.*<\/Description>|<Description>Experimental testing version of the Atlas Playbook, built with GitHub Actions from commit ${{ github.sha }}. Be aware of these builds being potentially unstable and buggy!</Description>|g' playbook.conf
cd Configuration/atlas
cd Configuration
echo "Enabling AME Wizard Live Log..."
sed '8s/ #//'
sed -i '7s/ #//' custom.yml
- name: Create playbook (ZIP/APBX password is malte)
if: ${{ steps.config-playbook.outcome != 'skipped' }}
Expand All @@ -124,7 +141,7 @@ jobs:
mv "Atlas Playbook ${GITHUB_SHA::8}.apbx" "../release-zip"
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: ${{ steps.config-playbook.outcome != 'skipped' }}
with:
name: Atlas Playbook
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/filter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
auto-pr
translations
readme
dependabot
dependencies
"
no_run=false
Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,40 +25,40 @@
- [Branding](https://docs.atlasos.net/branding/)

## 🤔 What is Atlas?
Atlas is an open source project that enhances Windows by eliminating factors that negatively impact gaming performance. We optimize for minimal stutters and input lag, enhanced privacy, usability, and performance, all with a focus on maintaining functionality.
Atlas is an open-source project that enhances Windows by eliminating factors negatively impacting gaming performance. Optimizations include enhanced privacy, usability, performance, and changes for minimal stutters and input lag while focusing on maintaining functionality.

## 👀 Why Atlas?
### 🔒 Enhanced Privacy
Atlas removes the majority of telemetry embedded within Windows and implements numerous group policies to minimize data collection. However, it cannot ensure privacy outside the scope of Windows, such as browsers and other third-party applications.

### Optimized Performance
Atlas strikes a balance between performance and compatibility. It implements numerous meaningful changes to improve Windows performance and responsiveness without breaking essential features. Atlas will not do tweaks for a placebo effect or very marginal gains, making Atlas more stable and compatible.
### 📈 Optimized Performance
Atlas strikes a balance between performance and compatibility. It implements numerous meaningful changes to improve Windows performance and responsiveness without breaking essential features. Atlas will not do tweaks for a placebo effect or marginal gains, making Atlas more stable and compatible.

### 🛡️ Security Features
Unlike most other Windows modifications, we don't remove key security features that most users need to maintain a secure system. However, Atlas allows power users to have more customisation over disabling certain security features within their needs, including informing users with information about the [pros and cons](https://docs.atlasos.net/getting-started/post-installation/atlas-folder/security/) of each option.
Most Windows modifications remove key security features most users need to maintain a secure system. On the other hand, Atlas allows users to customize their security at their own risk while informing users about each option's [pros and cons](https://docs.atlasos.net/getting-started/post-installation/atlas-folder/security/).

Some security features which are optional are:
Some optional security features are:

- Windows Defender & SmartScreen
- Windows Update
- No automatic updates (will be customisable next release)
- No major feature updates (potentially customisable in the future)
- Automatic updates are togglable
- CPU mitigations
- User Account Control
- Core isolation features

### 😄 Increased Usability
### Increased Usability
Atlas applies many modifications and default settings to make Windows easier to use. This includes removing commonly unneeded applications (which are reinstallable), configuring many aspects of the interface, disabling advertisements, and much more.

### 🔍 Open Source and Transparent
Atlas is open source with the [GPLv3 license](https://github.com/Atlas-OS/Atlas/blob/main/LICENSE).

Unlike custom Windows ISOs, Atlas is easier to audit due to Atlas' use of the software [AME Wizard](https://ameliorated.io). AME Wizard is controlled by Playbooks, a heavily customizable script-esque system that can perform a wide range of tasks, including deep modifications to Windows. AME Wizard's backend is [open source](https://git.ameliorated.info/Styris/trusted-uninstaller-cli), meaning that you can see exactly what is ran.
Unlike custom Windows ISOs, Atlas is more straightforward to audit due to the use of [AME Wizard](https://ameliorated.io). AME Wizard is controlled by Playbooks, a customizable script-esque system that can perform various tasks.

Playbooks are renamed **.zip** archives (with the password [`malte`](https://docs.ameliorated.io/developers/getting-started/creation.html)) which primarily consists of plain text scripts, meaning that Atlas is much easier to audit to see exactly what is changed. This is unlike custom Windows ISOs, which have many more entry points for malicious activity. The minimal amount of binaries included in the Playbook are open source in our [utilities](https://github.com/Atlas-OS/utilities) repository, with the [hashes being listed here](https://github.com/Atlas-OS/Atlas/blob/main/src/playbook/Executables/AtlasModules/README.md).
Playbooks are renamed **.zip** archives, with the password [`malte`](https://docs.ameliorated.io/developers/getting-started/creation.html). As they primarily consist of plain text, Playbooks enable transparency, unlike custom Windows ISOs, which have many entry points for malicious activity. The few binaries in the Playbook are open source in our [`utilities` repository](https://github.com/Atlas-OS/utilities), with the [hashes listed here](https://github.com/Atlas-OS/Atlas/blob/main/src/playbook/Executables/AtlasModules/README.md).

Although the GUI is not open source for AME Wizard, AME Wizard's entire backend (called [TrustedUninstaller](https://github.com/Ameliorated-LLC/trusted-uninstaller-cli)) is open source under MIT, which contains each action used to run Atlas. The Atlas Playbook is open source under the [GPLv3 license](https://github.com/Atlas-OS/Atlas/blob/main/LICENSE).

### 🔒 Legal Compliance
As Atlas doesn't redistrbute a modified Windows ISO, Atlas fully complies with [Microsoft's Terms of Service](https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm). In addition, activation in Windows is not modified.
As Atlas doesn't redistribute a modified Windows ISO, it complies with [Windows's Usage Terms](https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm). In addition, Atlas does not alter activation in Windows.

## 🎨 Brand kit
Want to create your own Atlas wallpaper with some original creative designs? Download our brand kit [here](https://github.com/Atlas-OS/branding/archive/refs/heads/main.zip) and share your creations on our [forum](https://forum.atlasos.net/t/art-showcase).
Want to create your own Atlas wallpaper with some original creative designs? Download our brand kit [here](https://github.com/Atlas-OS/branding/archive/refs/heads/main.zip) and share your creations on our [forum](https://forum.atlasos.net/t/art-showcase).
Loading

0 comments on commit 25b24cf

Please sign in to comment.