Fully automated RPM packaging for the latest Android Studio Beta channel release, designed for Open Build Service (OBS) and compatible Linux distributions (openSUSE, Fedora, etc.).
Note: This package tracks the Beta channel of Android Studio. The product name is patched at build time to display as Android Studio Beta to distinguish it from a stable channel install.
- π€ Fully Automated β Daily checks for new Android Studio Beta releases via GitHub Actions
- β‘ Rapid Updates β New releases are built within hours of publication
- π§ OBS Integration β Seamless integration with Open Build Service
- π Robust Detection β Multiple fallback methods for version scraping
- π¦ Clean Packaging β Installs to
/usr/share/android-studiowith proper desktop and icon integration - π οΈ Manual Control β Includes manual trigger options and a local update script
graph TB
A[GitHub Actions<br>Daily Schedule] --> B[Scrape Android Studio<br>Beta Releases Page]
B --> C{New Version<br>Available?}
C -->|Yes| D[Update .spec file<br>Version + Codename]
D --> E[Commit & Push<br>to Repository]
E --> F[OBS Monitors<br>Repository Changes]
F --> G[OBS Downloads<br>Source Tarball]
G --> H[OBS Builds<br>RPM Package]
H --> I[Package Available<br>in OBS Repositories]
C -->|No| J[Workflow Complete<br>No Changes]
| Property | Value |
|---|---|
| Channel | Beta |
| Architecture | x86_64 |
| Install path | /usr/share/android-studio/ |
| Binary symlink | /usr/bin/android-studio |
| Desktop entry | /usr/share/applications/android-studio.desktop |
| Icon | /usr/share/pixmaps/android-studio.png |
| Licenses | /usr/share/licenses/android-studio/ |
.
βββ android-studio.spec # RPM specification file
βββ android-studio.rpmlintrc # rpmlint suppression rules
βββ _service # OBS source service configuration
βββ .github/workflows/
β βββ updater.yml # Automated version checker workflow
βββ update.sh # Manual local update script
βββ README.md # This file
Install Android Studio (Beta) from the OBS repository:
# Add the repository
sudo zypper addrepo https://download.opensuse.org/repositories/home:/itachi_re/openSUSE_Tumbleweed/home:itachi_re.repo
sudo zypper refresh
# Install the package
sudo zypper install android-studioThen launch from your application menu or run:
android-studio- Fork this repository and create your OBS package:
osc meta pkg -e your_project android-studio-
Copy the
_service,android-studio.spec, andandroid-studio.rpmlintrcfiles into your OBS package directory. -
Configure GitHub Secrets if needed:
GITHUB_TOKENis sufficient for automated commits if Actions has write permissions enabled in your repo settings.
-
The automation handles the rest β version bumps, OBS triggers, and builds.
# Run the local update script
chmod +x update.sh
./update.shOr trigger it from GitHub:
- Go to the Actions tab in your repository
- Select Check for Android Studio Updates
- Click Run workflow
git clone https://github.com/itachi-re/android-studio-obs/
cd android-studio-obs
# Requires rpmbuild and the source tarball to be downloaded manually
rpmbuild -ba android-studio.specThe workflow runs daily at 06:00 UTC. To change the schedule, edit .github/workflows/updater.yml:
schedule:
- cron: '0 6 * * *' # Daily at 06:00 UTCThe _service file below is abbreviated for illustration β the actual file in the repository includes additional services (set_version, download_files, tar, recompress) required for a working OBS build. Do not copy this snippet verbatim:
<!-- Abbreviated β see _service in repo for the full configuration -->
<service name="obs_scm">
<param name="url">https://github.com/itachi-re/android-studio-obs/</param>
<param name="filename">android-studio.spec</param>
<param name="revision">main</param>
</service>Multiple fallback methods are used for robust version detection:
- Primary β Official Android Studio releases page scraping
- Secondary β AUR PKGBUILD parsing (via
update.sh) - Tertiary β Direct download URL probing
Since this package coexists with the stable channel, the build patches lib/resources.jar at %prep time to rename the product to Android Studio Beta internally:
bsdtar -xf lib/resources.jar idea/AndroidStudioApplicationInfo.xml
sed -i 's/"Studio"/"Studio Beta"/' idea/AndroidStudioApplicationInfo.xml
zip -u lib/resources.jar idea/AndroidStudioApplicationInfo.xmlGoogle embeds a release codename (e.g. quail1-patch1) in the source tarball filename, which changes with each release family. This is tracked via a %define studio_codename macro in the spec and updated by the automation script alongside the version number.
Contributions are welcome:
- Report bugs or packaging issues via GitHub Issues
- Submit pull requests for spec improvements, workflow fixes, or documentation updates
# Fork and clone
git clone https://github.com/your-fork/android-studio-obs/
cd android-studio-obs
# Create a feature branch
git checkout -b fix/something-broken
# Make changes, then push
git add .
git commit -m "fix: describe what you changed"
git push origin fix/something-broken
# Open a pull request on GitHub| Component | Status | Details |
|---|---|---|
| Automated Updates | β Active | Daily checks via GitHub Actions |
| OBS Integration | β Active | Automatic build triggers |
| Architecture | β x86_64 | Beta channel only ships x86_64 upstream |
| Version Detection | β Robust | Multiple fallback methods |
| Beta Branding | β Patched | Safe to install alongside stable |
This project is licensed under the MIT License β see the LICENSE file for details.
Android Studio itself is subject to its own license terms.
- Google Android Team for Android Studio
- Open Build Service team for the packaging infrastructure
- Arch Linux AUR maintainers for version reference
Automation makes life efficient. π€